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