NOTE: The current schedule is tentative and subject to change. Nonetheless it gives an idea of the material to be covered in this course.
Key to readings: A = Appel. The readings are not required, but may help your understanding of the lecture material.
The lecture notes here contain material from lecture notes by Greg Morrisett and Jean-Baptiste Tristan.
Lec. | Date | Topic | Readings | Notes | Projects | P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Introduction | |||||||||||||
1 | Tue 4-Sep | Introduction | |||||||||||
2 | Thu 6-Sep | Assembly | Project 1 released | P1 | |||||||||
Lexing and Parsing | P1 | ||||||||||||
3 | Tue 11-Sep | Lexical Analysis | A2 | PDF Lec03-lexer.ml Lec03-mllexeg.mll |
P1 | ||||||||
4 | Thu 13-Sep | Recursive parsing | A3 | PDF Lec04-recdesc-a.ml Lec04-recdesc-b.ml Lec04-recdesc-c.ml |
Project 2 released | P1 | P2 | ||||||
5 | Tue 18-Sep | LL Parsing | P1 | P2 | |||||||||
6 | Thu 20-Sep | LR Parsing | PDF Lec06-parser-eg.mly Steve away Guest lecturer Aaron Bembenek |
Project 1 due | P1 | P2 | |||||||
7 | Tue 25-Sep | Simple code generation | Project 3 released | P2 | P3 | ||||||||
Code generation | P2 | P3 | |||||||||||
8 | Thu 27-Sep | Compiling functions | PDF Steve away Guest lecturer Shrutarshi Basu |
P2 | P3 | ||||||||
9 | Tue 2-Oct | Data and memory management | PDF Steve away Guest lecturer Ming Kawaguchi |
Project 4 released | P2 | P3 | P4 | ||||||
10 | Thu 4-Oct | Runtime systems | A13 | Project 2 due | P2 | P3 | P4 | ||||||
11 | Tue 9-Oct | Objects | A14 | Project 3 due | P3 | P4 | |||||||
12 | Thu 11-Oct | Closures and environments | A15 | Project 5 released | P4 | P5 | |||||||
Optimization and analysis | P4 | P5 | |||||||||||
13 | Tue 16-Oct | Functional programming optimizations | A15 | P4 | P5 | ||||||||
14 | Thu 18-Oct | Type checking | A5, A16 | P4 | P5 | ||||||||
15 | Tue 23-Oct | Local optimization I | Project 6 released | P4 | P5 | P6 | |||||||
16 | Thu 25-Oct | Local optimization II | Project 4 due | P4 | P5 | P6 | |||||||
17 | Tue 30-Oct | Control flow graph and data flow analysis | A10, A17 | Project 7 released | P5 | P6 | P7 | ||||||
18 | Thu 1-Nov | Loop optimizations I | A18 | P5 | P6 | P7 | |||||||
19 | Tue 6-Nov | Loop optimizations II | P5 | P6 | P7 | ||||||||
Register allocation and instruction selection | P5 | P6 | P7 | ||||||||||
20 | Thu 8-Nov | Register allocation I | A11 | P5 | P6 | P7 | |||||||
21 | Tue 13-Nov | Register allocation II | Project 5 due Project 8 released |
P5 | P6 | P7 | P8 | ||||||
22 | Thu 15-Nov | Guest lecture: Vijay Janapa Reddi, Energy efficiency | P6 | P7 | P8 | ||||||||
Additional topics | P6 | P7 | P8 | ||||||||||
23 | Tue 20-Nov | Static single assignment | A19 | Project 6 due | P6 | P7 | P8 | ||||||
Thanksgiving | P7 | P8 | |||||||||||
24 | Tue 27-Nov | Compiling control flow | P7 | P8 | |||||||||
25 | Thu 29-Nov | Guest lecture: Evan Czaplicki, The Elm Compiler | Project 7 due | P7 | P8 | ||||||||
26 | Tue 4-Dec | Guest lecture: Vijay Janapa Reddi, Dynamic compilation | P8 | ||||||||||
- | Sat 8-Dec | - | Project 8 due | P8 | |||||||||
Wed 12-Dec | Final Exam |