Date Notes
Tuesday, Sep 6 Lecture 1. Out: Functional Programming (fp.ml).
Thursday, Sep 8 Lecture 2.
Tuesday, Sep 13 Lecture 3. Due: Functional Programming. Out: Interpreter (interp.ml).
Thursday, Sep 15 Lecture 4.
Tuesday, Sep 20 Due: Interpreter. Out: Extended Interpreter (xinterp.ml). Paper: The Essence of JavaScript.
Thursday, Sep 22 Lecture 6. Paper: A Syntactic Approach to Type Soundness.
Tuesday, Sep 27 Lecture 7. Due: Extended Interpreter. Out: Type Checker. (tc.ml).
Thursday, Sep 29 Lecture 8.
Tuesday, Oct 4 Paper: A Theory of Type Polymorphism in Programming.
Thursday, Oct 6 Due: Type Checker. Out: Type Inference. (typeinf.ml).
Tuesday, Oct 11 No class. (Monday schedule.)
Thursday, Oct 13 Lecture 11. Paper: Definitional Interpreters for Higher-Order Programming Languages.
Tuesday, Oct 18 Joe Politz on A Normal Form. Matt Might on A Normal Form.
Thursday, Oct 20 Due: Type Inference. ARM Assembly Tutorial.
Tuesday, Oct 25 Out: Compiler. (compiler.ml, init.s, cortex-a9-vm.tar.gz)
Thursday, Oct 27 Class cancelled. Suggested reading: Uniprocessor Garbage Collection Techniques.
Tuesday, Nov 1 Paper: Logical Types for Untyped Languages.
Thursday, Nov 3 Reading: Dafny Tutorial and Z3 Tutorial
Tuesday, Nov 8 Reading: Hoare Logic and Weakest Preconditions
Thursday, Nov 10  
Tuesday, Nov 15 Due: Compiler. Out: Verification. (verif.ml, z3_debug.sh)
Tuesday, Nov 22 No class. (Thanksgiving Recess.)
Thursday, Nov 24 No class. (Thanksgiving Recess.)
Tuesday, Nov 29 Due: Verification. Reading: Combinatorial Sketching for Finite Programs. Out: Program Synthesis. (synth.ml)
Thursday, Dec 1  
Tuesday, Dec 6  
Thursday, Dec 8  
Tuesday, Dec 13 Due: Program Synthesis.