1.
|
Mon Aug 23, Wed Aug 25, Fri Aug 27,
Mon Aug 30, Wed Sep 1, Fri 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.
|
Wed Sep 8, Fri Sep 10,
Mon Sep 13, Wed Sep 15:
Interpreters, operational semantics.
Read: EOPL Chapter 4, 5, 7,
Lecture Note 2.
|
3.
|
Mon Sep 20, Wed Sep 22, Fri Sep 24,
Mon Sep 27, Wed Sep 29, Fri Oct 1,
Mon Oct 4, Wed Oct 6, Fri Oct 8:
Type systems, type soundness, decision procedure for subtyping,
type inference, principal types,
typed assembly languages.
Read:
Efficient recursive subtyping,
A Simple Algorithm and Proof for Type Inference,
From System F to Typed Assembly Language (Sect. 1,6).
Lecture Note 3.
|
4.
|
Mon Oct 18, Wed Oct 20, Fri Oct 22,
Mon Oct 25:
Continuation-passing-style transformation, closure conversion.
Read: EOPL Chapters 8.1-8.5, 9.1, 10.1-10.2,
Lecture Note 4.
|
5.
|
Wed Oct 27, Fri Oct 29,
Mon Nov 1,
Mon Nov 8, Wed Nov 10, Fri Nov 12:
Flow analysis.
Read: OOTS Chapter 3-5,
Linear-time subtransitive control flow analysis,
Lecture Note 5.
|
6.
|
Mon Nov 15, Wed Nov 17, Fri Nov 19,
Secure information flow.
Read:
Confined types.
|
7.
|
Wed Dec 1, Fri Dec 3,
Mon Dec 6:
Software obfuscation and watermarking.
Read:
Manufactoring cheap, resilient, and stealthy opaque constructs
and
Software Watermarking: Models and Dynamic Embeddings,
transparencies.
|
8.
|
Fri Dec 10:
Questions and answers.
|