1.
|
Tue Aug 25, Thu Aug 27,
Tue Sep 1, Thu Sep 3:
Object-oriented programming, Java, the Java Compiler Compiler,
the Java Tree Builder, functional programming, Scheme.
Read: any good book on Java,
EOPL Chapters 1-2,
Lecture Note 1.
|
2.
|
Tue Sep 8, Thu Sep 10, Tue Sep 15:
Interpreters, lambda-calculus.
Read: EOPL Chapter 4, 5, 7,
Lecture Note 2.
|
3.
|
Thu Sep 17, Tue Sep 22, Thu Sep 24:
Simple types, type soundness, recursive types, subtyping, decision procedure
for subtyping.
Read:
Efficient recursive subtyping,
Lecture Note 3.
|
4.
|
Tue Sep 29, Thu Oct 1, Tue Oct 6, Thu Oct 8.
Continuation-passing-style transformation, closure conversion.
Read: EOPL Chapters 8.1-8.5, 9.1, 10.1-10.2,
Lecture Note 4.
|
5.
|
Tue Oct 20, Thu Oct 22:
Type inference, principal types, first-order unification.
Read:
A Simple Algorithm and Proof for Type Inference,
Lecture Note 5.
|
6.
|
Tue Oct 27, Thu Oct 29, Tue Nov 3, Thu Nov 5:
Flow analysis.
Read: OOTS Chapter 3-5,
Linear-time subtransitive control flow analysis,
Lecture Note 6.
|
7.
|
Tue Dec 1, Tue Dec 8:
Typed assembly languages.
There will not be homework or exam questions about this topic.
Read:
From System F to Typed Assembly Language, and
An overview of Types in Compilation.
|
8.
|
Thu Dec 10:
Questions and answers.
|