CS624 --- Programming Languages

Instructor:
Amr Sabry, DES 313, x6-4411, sabry@cs

Lectures:
UH 9:30-10:50, VOL 307

Office hours:
Just stop by ...

Textbooks:

D. P. Friedman, M. Wand, and C. T. Haynes, Essentials of Programming Languages, MIT Press 1992.

You will probably need books on Java and Scheme. Pick your favorite.

I will also hand out some papers.

Software:

On the CS machines, you will need to run Scheme and Java:

  • /local/apps/chez-5.0a/bin/jscheme: This is a version of Chez Scheme for fast loading of the Java parser.
  • /local/apps/jdk/bin/javac and /local/apps/jdk/bin/java: The Java byte-code compiler and byte-code interpreter.

You might also want to install some Scheme and Java compilers on your PC. Again pick your favorite.

Assignments:
Yes. Handwritten code or code that does not compile is unacceptable. You are welcome to work in groups but please say so.

Grading Policy:
Your grade will be calculated as follows:
  • programming assignments (30%)
  • midterm (30%), final (40%)
These weights are subject to minor variation.

Tentative Schedule

Date Topic Homework Due
3/31 Introduction; Java
4/2 No class
4/7 Operational Semantics; Interpreters; Program Verification Simple Java
4/9 Higher-Order Functions; Recursion
4/14 Scheme
4/16 Continuations Core Scheme in Java
4/21 Continuation-Passing Style
4/23 Recursion to Iteration Simple Scheme
4/28 Core Java in Scheme
4/30 Midterm
5/5 Store-Passing Style
5/7 Exceptions Core Java in Scheme
5/12 Objects
5/14 Inheritance
5/19 Verifying Properties of Programs Advanced Java in Scheme
5/21 Types
5/26 Types
5/28 Abstract Interpretation
6/2 Abstract Interpretation Proving Program Properties
6/4 Conclusion
6/12 Final Exam 10:15-12:15


Page visited times since November 18, 1996.

sabry@cs.uoregon.edu