Note: Despite the catalog description, the prerequisite for 506 is only 505 (not 501) and there will not be a large implementation project.
Join the course mailing list.
Instructor: Dan Grossman,
,
Allen Center 556
Office hours: by appointment or just stop by
Meetings: Monday and Wednesday 10:00–11:20, Allen Center 503
This course will cover several topics useful to programming-languages researchers that are not covered by other courses and activities in the department. Prior advanced courses in the area have been more thematic, so we will try something different.
Workload will be light. Beyond active participation (which means strictly more than showing up for class), students will be expected to:
1. Jan 3: Haskell: Basics and Laziness
2. Jan 8: Haskell: The Awkward Squad and Type Classes
3. Jan 10: Haskell: Monads
X. Jan 15: No class (University holiday)
X. Jan 17: No class (Instructor travel)
4. Jan 22: Type and Effect Systems
5. Jan 24: Effect Systems for Memory Management and Locking
6. Jan 29: Termination of System F (Logical Relations)
7. Jan 31: Representation Independence (More Logical Relations)
8. Feb 5: Finish Representation Independence; First-Class Continuations
9. Feb 7: Typed Continuations; Continuation-Passing Style
10. Feb 12: Translation to Continuation-Passing Style (Untyped and
Typed)
11. Feb 14: Denotational Semantics for while loops
X. Feb 19: No class (University holiday)
12. Feb 21: Pi-calculus basics
13. Feb 26: Pi-calculus encodings, labeled transitions, and traces
14. Feb 28: Bisimulation and coinduction
15. Mar 5: Typed Assembly Language basics
16. Mar 7: Typed Assembly Language polymorphism and memory