Advanced Programming Languages meets 10:10-11:00 on Mon & Wed in Upson 315.
Date | Topic | Notes | Assignments |
---|---|---|---|
Week 1 | |||
Jan 23 | Goals of the Course Operational Semantics Introduction for functional languages |
Student Survey | |
Jan 25 | Lambda Calculus Reduction Rules Operator Notation |
||
Jan 27 | PL Lab - Intro to Lab, student survey | ||
Week 2 | |||
Jan 30 | What do λ-terms mean? | ||
Feb 1 | Primitive Recursion - as a PL and foundation for mathematics. Math Preliminaries Classic ML |
Lec5 Notes |
assignment 1 |
Feb 3 | PL Lab - Applied λ-calculus | CS6110 sp2010 Lect3 Gordon, Milner, Wadsworth: Edinburgh LCF Martin-Lof: Informal Notes on Foundations | |
Week 3 | |||
Feb 6 | Evaluation in λ-calculus with environments | ||
Feb 8 | Evaluation in the λ-calculus with closures and capsules |
Lect8 - Highlights from Kozen & Jeannin's Scoping - note Constable's highlights in Introduction |
|
Feb 10 | PL Lab - Closures at work in the ML and Nuprl evaluators Comparing Primitive Recursion and ML's recursion as a basis for math | Evaluation Function Using Closures | |
Week 4 | |||
Feb 13 | Comparing Evaluators | Lect10 Notes | |
Feb 15 | Continuations | assignment 2 | |
Feb 17 | PL Lab - Continuations at work in Primitive Recursive Arithmetic (PRA), Logical rules for Goodstein's PRA, Assertions in Programming Languages | Lect12 Notes | |
Week 5 | |||
Feb 20 | Brief Review -- where we stand Introduction to a Simple Imperative Language (IMP) |
IMP-simple imperative language Supplemental: Winskel-IMP |
|
Feb 22 | Program Schemas (Schemes) |
||
Feb 24 | PL Lab - Imperative languages for primitive recursive functions (Loop) Subrecursive languages and logics Assertions in programs-prelude to Hoare Logics |
||
Week 6 | |||
Feb 27 | Intro to Axiomatic Semantics and Hoare Logic |
||
Feb 29 | Guest Lecturer: David Gries Asserted Programs |
Gries Lecture on Algorithms |
assignment 3 |
Mar 2 | PL Lab - Why logic is important for PL. Proofs as Programs. Programming Logics. |
||
Week 7 | |||
Mar 5 | Explaining continuations as while loops | Lec19 Notes | |
Mar 7 | Revisiting continuations. Defunctionalization. | Lect20 Notes (updated p3) | |
Mar 9 | PL Lab - Godel's system T Introduction to Simple Types |
||
Week 8 | |||
Mar 12 | Godel system T. Tait's Method (Logical Relations). | Lect22 Notes- updated 3/14 | |
Mar 14 | Strong Normalization Prelim Review |
Pierce-Ch12 | |
Mar 16 | PL Lab - | CMU Lecture Notes | |
Spring Break: March 19-23 | |||
Week 9 | |||
Mar 26 | Typed Lambda Calculus and Recursive Procedures in IMP | An Upper Bound for Reduction Sequences in the Typed λ-calculus. By Schwichtenberg Procedures and Paramteres: An axiomatic Approach. By Hoare The Typed λ-calculus is not Elementary Recursive. By Statman |
|
Mar 28 | In class Prelim. There will not be a take home part, only in-class. | ||
Mar 30 | PL Lab - Functions in Imperative Languages | LNCS-PL/CV pages 160-168 | assignment 4 |
Week 10 | |||
Apr 2 | Applied Lambda Calculus (products, sums, void) |
Types for Applied Lambda Calculus supplemental: Curry - Historical Analogies with Propositional Algebra |
|
Apr 4 | Compiling with continuations - Lecture by Andrew Myers | Lect27 Notes | |
Apr 6 | PL Lab - Evidence Semantics for Propositions | Semantics of Evidence | |
Week 11 | |||
Apr 9 | Propositional Logic and the Typed Lambda Calculus |
Refinement rules for FOL | |
Apr 11 | Proofs and Evidence | See April 9 notes | assignment 5
updated 4/18 |
Apr 13 | PL Lab - Dependent Types and First-Order Logic | See April 9 notes |
|
Week 12 | |||
Apr 16 | Proof Rules for Dependent Types | ||
Apr 18 | Specification Languages (Lecture 33) | Products, Sums, and Other Datatypes | |
Apr 20 | PL Lab - Defining Types | Part 1 of Martin-L�f: Constructive Mathematics and Computer Programming | |
Week 13 | |||
Apr 23 | Proofs as Programs | ||
Apr 25 | What is a Type? | assignment 6 updated 5/1 with problem 7 added Due May 4 |
|
Apr 27 | PL Lab - Birth of Constructive Type Theory & Recursive Types |
Full article from Martin-Löf: Constructive Mathematics and Computer Programming |
|
Week 14 | |||
Apr 30 | Type Theory | ||
May 2 | Distributed Computing | ||
May 4 | Last Class | Lect 40 Notes | |
May 14 | Final Exam: 9:30-12:30 in Upson 315 | Exam Review Notes |