Topics:
-
Subtyping
- simply typed lambda calculus with subtyping
- bounded quantification (System F-sub and F-omega-sub)
- intersection types
- PER models
- recursive subtyping
- applications (in particular, object encodings)
- Great Works in Programming Languages
Participation:
- Grading will be based on:
- class participation
- a one-page precis of each day's assigned reading
- a major project (solo or in groups of two)
- Unregistered "observers" are welcome, but will be expected to participate fully --- taking part in class discussions, keeping up with reading and homework, etc. (Basically, the class project is the only difference.)
(Extremely) tentative schedule:
Date | Topic | Reading (before class) |
Sep. 8 | Overview and introductions; introduction to subtyping; the simply typed lambda-calculus with subtyping (lambda-sub); basic metatheory of lambda-sub | |
Sep 13 | Review of System F; introduction to System Fsub | TAPL Chapters 15, 16, 23 |
Sep 15 | Fsub and its metatheory | TAPL Chapter 26 (and, time permitting, start on 28) |
Sep 20 | No class (ICFP) | |
Sep 23 | No class (ICFP) | |
Sep 27 | More on Fsub metatheory | TAPL Chapter 28 and Pierce, Fsub is Undecidable |
Sep 29 | Undecidability of Fsub | |
Oct 4 | Higher-order subtyping (System F-omega-sub) | TAPL chapters 29, 30, 31 |
Oct 6 | Higher-order subtyping | |
Oct 11 | Object encodings | TAPL Chapter 32 |
Oct 13 | Object encodings | Comparing Object Encodings, by Bruce, Cardelli, and Pierce |
Oct 18 | Recursive types and subtyping | TAPL, Chapter 20 |
Oct 20 | Recursive types and subtyping | TAPL, Chapter 21 |
Oct 25 | (no class -- Fall break) | |
Oct 27 | Recursive types and subtyping | |
Nov 1 | (guest lecture -- Nate Foster) | |
Nov 3 | (guest lecture -- Geoff Washburn) | |
Nov 8 | (guest lecture -- Didier Remy) | |
Nov 10 | Intersection types | no reading |
Nov 15 | Denotational Semantics | Notes on Denotational Semantics by Hofmann and Pierce |
Nov 17 | Guest lecture: Greg Morrisett | |
Nov 22 | Denotational Semantics | |
Nov 24 | (No Class -- Thanksgiving Wednesday) | |
Nov 29 | Denotational Semantics | |
Dec 1 | Great works | |
Dec 6 | Great works | |
Dec 8 | Great works |