CS624 --- Programming Languages

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

UH 9:30-10:50, VOL 307

Office hours:
Just stop by ...


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.


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.

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.