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.
Videos of lectures are available at https://matterhorn.dce.harvard.edu/engage/ui/index.html#/2020/01/16072, generally posted within a day of the lecture. All students in the course (Extension and College) are allowed to access the videos. Let Prof Chong know if you can't access them.
The lecture notes here contain material from lecture notes by Steve Zdancewic, Greg Morrisett, Jean-Baptiste Tristan, and Elisavet Kozyri.
Lec. | Date | Topic | Readings | Notes | Projects | P1 | P2 | P3 | P4 | P5 | P6 |
---|---|---|---|---|---|---|---|---|---|---|---|
1 | Tue 3-Sep | Introduction | PDF Lec01.zip |
Project 1 (HellOCaml) released | P1 | ||||||
2 | Thu 5-Sep | Assembly | PDF Lec02.zip |
P1 | |||||||
3 | Tue 10-Sep | Assembly | Project 2 (x86lite) released | P1 | P2 | ||||||
4 | Thu 12-Sep | Intermediate Representations | PDF Lec04.zip |
P2 | |||||||
5 | Tue 17-Sep | Intermediate Representations | PDF Lec05.zip |
P2 | |||||||
6 | Thu 19-Sep | Intermediate Representations / LLVM | PDF Lec06.zip |
P2 | |||||||
7 | Tue 24-Sep | Structured Data in LLVM IR | PDF Lec07.zip |
Project 3 (LLVMlite) released | P2 | P3 | |||||
8 | Thu 26-Sep | Lexical Analysis | A2 | PDF Lec08.zip Steve away Guest lecturer: Elisavet Kozyri |
P3 | ||||||
9 | Tue 1-Oct | Recursive parsing | A3 | PDF Lec09.zip |
P3 | ||||||
10 | Thu 3-Oct | LL Parsing | P3 | ||||||||
11 | Tue 8-Oct | LR Parsing | PDF Lec11.zip |
Project 4 (OAT v1) released | P3 | P4 | |||||
12 | Thu 10-Oct | First-class functions | A15 | P3 | P4 | ||||||
13 | Tue 15-Oct | Compiling closures | P3 | P4 | |||||||
14 | Thu 17-Oct | Type checking | A5,A16 | P4 | |||||||
15 | Tue 22-Oct | Type checking ctd/Subtyping | P4 | ||||||||
16 | Thu 24-Oct | Subtyping | A14 | P4 | |||||||
17 | Tue 29-Oct | Oat's type system; Objects | Project 5 (OAT v2) released | P4 | P5 | ||||||
18 | Thu 31-Oct | Object ctd. | P5 | ||||||||
19 | Tue 5-Nov | Optimization | PDF Steve away Guest lecturer: Elisavet Kozyri |
P5 | |||||||
20 | Thu 7-Nov | Dataflow analysis | A10, A17 | P5 | |||||||
21 | Tue 12-Nov | Register allocation | A11 | Project 6 (Dataflow analysis and Register Allocation) released | P5 | P6 | |||||
22 | Thu 14-Nov | Register allocation | P5 | P6 | |||||||
23 | Tue 19-Nov | Loop optimizations | A18 | P5 | P6 | ||||||
24 | Thu 21-Nov | Embedded EthiCS module: Ethics of Open Source | PDF Lecturer: Meica Magnani |
P6 | |||||||
25 | Tue 26-Nov | Garbage Collection | A13 | P6 | |||||||
Thanksgiving | |||||||||||
26 | Tue 3-Dec | Guest lecture: Evan Czaplicki '12, The Economics of Programming Languages | P6 | ||||||||
Reading Week | |||||||||||
Thu 19-Dec | Final Exam, 9am-12pm. |