|
||||||
# | Date | Topic | Readings* | Lecture notes (![]() |
Homework | |
---|---|---|---|---|---|---|
Operational semantics and proof techniques | ||||||
1 | Aug. 24 | Course introduction | P1,2 | [ PDF ] | handout: PS1 (Part 3) | |
2 | 27 | Lambda calculus | P5.1–5.2 | [ PDF | LaTeX ] | ||
3 | 29 | Lambda calculus encodings and recursion | P5.3–5.4 | [ PDF | LaTeX ] | ||
4 | 31 | Normal forms | P3.1,3.2,3.4,3.5 | [ PDF | LaTeX ] | ||
5 | Sept. 3 | Big-step vs. small-step SOS | P3.3,3.6,W2 | [ PDF | LaTeX ] | ||
6 | 5 |
Well-founded induction and function definitions |
W3.1–3.3 | [ PDF | LaTeX ] | due: PS1 handout: PS2 |
|
7 | 7 | Inductive definitions and rule induction | W4.1–4.4, P21.1 | [ PDF | LaTeX ] | ||
8 | 10 | Evaluation contexts | [ PDF | LaTeX ] | |||
Language features and translations | ||||||
9 | 12 | Semantics via translation | [ PDF | LaTeX ] | |||
10 | 14 | uML, strong typing, scope | [ PDF | LaTeX ] | due: PS2a handout: PS3 |
||
11 | 17 | Naming (Lecturer: Steve Chong) | [ PDF | LaTeX ] | |||
12 | 19 | Closures (Lecturer: Dexter Kozen) | [ PDF | LaTeX ] | |||
13 | 21 | Modules and state | [ PDF | LaTeX ] | due: PS2b | ||
14 | 24 | State and mutable variables | [ PDF | LaTeX ] | |||
15 | 26 | Continuation-passing style and CPS conversion | [ PDF | LaTeX ] | |||
16 | 28 | Nonlocal control: errors and exceptions | [ PDF | LaTeX ] | due: PS3 | ||
17 | Oct. 1 | First-class continuations, compiling with continuations | [ PDF | LaTeX ] | handout: PS4 | ||
Axiomatic semantics | ||||||
18 | 3 | Hoare logic | 10 Years of Hoare's Logic, §1,2 (Apt), (W6) | (No notes; read Winskel.) | ||
19 | 5 | Weakest preconditions | Predicate Transformers (Dijkstra) (W7) | |||
8 |
No class: fall break |
|||||
Denotational (fixed-point) semantics | ||||||
20 | 10 | Denotational semantics of IMP | W5.1–5.2 | [ PDF | LaTeX ] | ||
21 | 12 | The Fixed-Point Theorem | W5.3–5.4 | [ PDF | LaTeX ] | ||
22 | 15 | Domain constructions (Lecturer: Dexter Kozen) | W8.1–4 | [ PDF | LaTeX ] | ||
23 | 17 | Metalanguage for denotational semantics (Lecturer: Dexter Kozen) | ||||
24 | 19 | Denotational semantics of functions | W9.1–3,5–6 | [ PDF | LaTeX ] | due: PS4 | |
25 | 22 | Solving domain equations | W12, M7, Gunter 5, 9 | [ PDF | LaTeX ] | ||
Oct. 23 | Prelim, 7:30–9:30PM, Upson 109. Covers lectures 1–24 (incl. REC semantics) | See CMS for sample prelim | ||||
Static semantics (type systems) | ||||||
24 | No class (post-exam) | |||||
26 | 26 | Simply-typed lambda calculus | P8.1–2, P9.1–2, P9.5–9.6, P10.1–3, W11.1–3 | [ PDF | LaTeX ] | ||
27 | 29 | Products, sums, and more | P11.1–10, (W11.11) | [ PDF | LaTeX ] | handout: PS5 (q3) | |
28 | 31 | Soundness of the type system | P8.3, P9.3, (W11.9) | [ PDF | LaTeX ] | ||
29 | Nov. 2 | Logical relations and strong normalization | P12, (W11.4–8) | [ PDF | LaTeX ] | ||
30 | 5 | Recursive types | P20, W13 (Gunter 5, 10) | [ PDF | LaTeX ] | ||
31 | 7 | Subtype polymorphism (Lecturer: Radu Rugina) |
P15.1–6 (Gunter 9) | [ PDF | LaTeX ] | ||
32 | 9 | Type inference | P22.1–5 | [ PDF | LaTeX ] | ||
33 | 12 | Parametric polymorphism | P22.6–7, P23 | [ PDF | LaTeX ] | ||
34 | 14 | Recitation | due: PS5 | |||
35 | 16 | Propositions as types | Wadler | [ PDF | LaTeX ] | handout: PS6 | |
36 | 19 | Existential types | P24–24.2 CW86 (Mitchell 9.4–9.5) | [ PDF | LaTeX ] | ||
37 | 21 | Parameterized types and higher-order polymorphism | P29–30 | [ PDF (2005) | LaTeX ] | ||
23 | No class: Thanksgiving break | |||||
38 | 26 | Object-oriented languages | P18, (AC 1-4) |
![]() |
||
39 | 28 | Object calculi and encodings | (AC 5–8) |
![]() |
||
40 | 30 | Bounded quantification and directions in PL research | P26, (MLB97, M99, ZCMZ03, NCM04, LM06) |
![]() |
due: PS6 | |
Dec. 12 | Final Exam, 7:00–9:30pm, Hollister 362 |
P = Pierce, W = Winskel, M = Mitchell, AC = Abadi & Cardelli