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.
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 |
sabry@cs.uoregon.edu