Links will be added as material becomes available.
| Part 1: Programming in Standard ML | ||||
| 9/4 | Course Intro, SML Intro | slides | ||
| 9/6 | Core SML | slides | Assignment 1, assign1.sml | [Sample Solution] |
| 9/11 | First-Class Functions | slides | ||
| 9/13 | Modules | slides | Assignment 2 | [Sample Solution] |
| Part 2: Programming Language Theory | ||||
| 9/18 | Concrete & Abstract Syntax | slides | ||
| 9/20 | Lambda Calculus Introduction | slides | ||
| 9/25 | Fixed Points | slides | ||
| 9/27 | NO CLASS | Assignment 3 | [Code, fact3, fib4] | |
| 10/2 |
Extending the Lambda Calculus |
slides | ||
| 10/4 | Operational Semantics | slides | ||
| 10/9 | Variables and Definitions | slides | elisp code, sml code | |
| 10/11 | Assignment and Stores | slides | Assignment 4 | [Sample Solution] |
| 10/16 | Types | slides | ||
| 10/18 | Language Definitions | |||
| 10/23 | FALL BREAK | |||
| Part 3: Language Features and Design | ||||
| 10/25 | Subtyping | slides | Assignment 5 | [Sample Solution] |
| 10/30 | Delayed Computations | slides | ||
| 11/1 | Streams | slides | [Sample Solution] | |
| 11/6 | Closures | slides | ||
| 11/8 | Continuations | slides | ||
| 11/13 | Threads | slides | Assignment 7, setup7.sml, assign7.sml | [Sample Solution] |
| 11/15 | Closures and Continuations Without Functional Programming | slides | ||
| 11/20 | Video: "Growing a Language" | transcript | ||
| 11/22 | THANKSGIVING BREAK | |||
| Part 4: Implementation | ||||
| 11/27 | Polymorphism | slides | ||
| 11/29 | Type Inference | slides | Assignment 8 | [Sample Solution] |
| 12/4 | Garbage Collection | slides | ||
| 12/6 | Partial Evaluation | slides | ||
| Part 5: Conclusions | ||||
| 12/11 | Expressiveness | slides | ||
| 12/13 | Review | |||
| FINAL EXAMINATION | ||||