# 15-312 Foundations of Programming Languages

## Schedule of Lectures

Week/Date | Topic | PFPL Chapters | Homework | |
---|---|---|---|---|

1 | Jan 14 | Church's λ-Calculus: Binding and Scope; Substitution; Reduction | Church's λ-Calculus | |

Jan 15 | Judgments; Inference; Induction | Homework 0 Out | ||

Jan 16 | Levels of Syntax; Judgments and Rules; Rule Induction | 1-3 | ||

2 | Jan 21 | Statics and Dynamics: Typing and Execution | 4-6 | |

Jan 22 | Binding; Semantics; and Safety | Homework 0 Due; Homework 1 Out | ||

Jan 23 | Safety: Progress and Preservation | 4-6 | ||

3 | Jan 28 | Higher-order Total Programming: Gödel's T | 8-9 | |

Jan 29 | Gödel's System T | |||

Jan 30 | System T; Product Types | 10-11 | ||

4 | Feb 4 | Sum Types | 10-11 | |

Feb 5 | Products; Sums; Isomorphism | Homework 1 Due; Homework 2 Out | ||

Feb 6 | Generic Programming; Inductive Types | 15 | ||

5 | Feb 11 | Coinductive Types; Polymorphism | 16 | |

Feb 12 | Inductive and Coinductive Types | |||

Feb 13 | Polymorphic Encodings; Abstract Types | 17 | ||

6 | Feb 18 | Parametricity and Representation Independence | 17 | Dynamic Dispatch as an Abstract Type. |

Feb 19 | System F | Homework 2 Due; Homework 3 Out | ||

Feb 20 | Partiality: Plotkin's PCF | 17 | ||

7 | Feb 25 | Eager PCF; Computation Types | 19 | PCF-By-Value |

Feb 26 | Systems PCF and FPC | |||

Feb 27 | General Recursive Types: FPC | 20 | ||

8 | Mar 3 | Dynamic languages: λ-Calculus Revisited | ||

Mar 4 | Dynamic and Untyped Languages | Homework 3 Due | ||

Mar 5 | Midterm Examination (in-class & open-book) | |||

Mar 10 | Spring Break (no class) | |||

Mar 11 | Spring Break (no recitation) | |||

Mar 12 | Spring Break (no class) | |||

9 | Mar 17 | No class (transition to online instruction) | ||

Mar 18 | Homework 4 Out | |||

Mar 19 | Dynamic Languages: DPCF | 22 | ||

10 | Mar 24 | Exceptions: control and data | 28-29 | Exceptions by Value |

Mar 25 | Control Flow and Exception | |||

Mar 26 | Stacks and Continuations | 28; 30 | Stacks Prog'ing with Cont's | |

11 | Mar 31 | Parallelism | 6; 37 | |

Apr 1 | Continuations and Parallelism | Homework 4 Due; Homework 5 Out | ||

Apr 2 | Parallelism: Cost Semantics Brent's Theorem | 37 | Relating Transition and Cost Dynamics | |

12 | Apr 7 | Modal types and Parallelism | Types and Parallelism | |

Apr 8 | Cost; Parallelism; Modal Separation | |||

Apr 9 | Imperative Programming: Modernized Algol | 34 | ||

13 | Apr 14 | Concurrency: Interacting Automata | Automata and Concurrency | |

Apr 15 | Modernized Algol | Homework 5 Due; Homework 6 Out | ||

Apr 16 | Concurrent Algol | 40 | ||

14 | Apr 21 | Dyanmic Classification | 33 | |

Apr 22 | Concurrency | |||

Apr 23 | Resource Aware ML | |||

15 | Apr 28 | Substructural Type Systems | ||

Apr 29 | Review | |||

Apr 30 | Automatic Amortized Resource Analysis | Homework 6 Due (May 1) |

## Calendar

Author: Robert Harper
Last modified: Wed Aug 7 17:18:55 EDT 2019