15-312 Principles of Programming Languages


Schedule of Lectures

PFPL = Practical Foundations for Programming Languages, TAPL = Types and Programming Languages

Date Topic PFPL Chapters TAPL Chapters Homework
Jan 13 Overview 1-3 1-2
14 Getting Started Assignment 1 Out
15 Inductive Definitions 1-3 1-2
20 Concrete and Abstract Syntax 5-8 Assignment 1 Due
21 Parsing, Binding, and Scope Assignment 2 Out
22 Binding and Scope 5-8 3-4, 6-7 Solution 1 Out
27 Static and Dynamic Semantics 9-12 8 Assignment 2 Due
28 Proof Structure, Run-time Errors Assignment 3 Out
29 Type Safety Solution 2 Out
Feb 3 Higher-Order Languages 13-15 9-10 Assignment 3 Due
4 Gödel's T (txt) Assignment 4 Out
5 Primitive and General Recursion 11 Solution 3 Out
10 Products and Sums 16-18 11
11 Algebraic Data Types
12 Recursive Types 20 20
17 Dynamic Languages 21-22 5, 20 Assignment 4 Due
18 Self-reference Assignment 5 Out
20 Hybrid Typing Solution 4 Out
24 Polymorphism 23 23
25 Polymorphic Programming
26 Data Abstraction 24 24-25
Mar 3 Propositions as Types 24 Assignment 5 Due
4 Review
5 Midterm Examination Solution 5 Out
10 (Spring Break)
11 (Spring Break)
12 (Spring Break)
17 Control Stacks 27 14 Assignment 6 Out
18 Control Effects
19 Exceptions 28
24 Continuations 29
25 Continuations and Control (pdf)
26 Subtyping 30 15-16
31 Subtyping 32 15-16 Assignment 6 Due
Apr 1 Subtyping Assignment 7 Out
Apr 2 References 34-35 13 Solution 6 Out
7 Monadic State 37-39
8 Subtyping and state
9 Laziness and Futures 41-42
14 Cost Semantics and Parallelism 43 Assignment 7 Due
15 Work and Depth Assignment 8 Out
16 (Spring Carnival) Solution 7 Out
21 Parallelism 44
22 Coroutines and Threads
23 Non-Determinism and Processes 45
Apr 28 Concurrency 46 Assignment 8 Due
29 Concurrent ML
Apr 30 Advanced Topic Solution 8 Out

Robert Harper
Last modified: Mon Mar 30 11:43:32 EDT 2009

Valid XHTML 1.0!