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, 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
1Tue 3-Sep Introduction PDF
Project 1 (HellOCaml) released P1
2Thu 5-Sep Assembly PDF
3Tue 10-Sep Assembly PDF Project 2 (x86lite) released P1 P2
4Thu 12-Sep Intermediate Representations PDF
5Tue 17-Sep Intermediate Representations PDF
6Thu 19-Sep Intermediate Representations / LLVM PDF
7Tue 24-Sep Structured Data in LLVM IR PDF
Project 3 (LLVMlite) released P2 P3
8Thu 26-Sep Lexical Analysis A2 PDF
Steve away
Guest lecturer: Elisavet Kozyri
9Tue 1-Oct Recursive parsing A3 PDF
10Thu 3-Oct LL Parsing PDF P3
11Tue 8-Oct LR Parsing PDF
Project 4 (OAT v1) released P3 P4
12Thu 10-Oct First-class functions A15 PDF P3 P4
13Tue 15-Oct Compiling closures PDF P3 P4
14Thu 17-Oct Type checking A5,A16 PDF P4
15Tue 22-Oct Type checking ctd/Subtyping PDF P4
16Thu 24-Oct Subtyping A14 PDF P4
17Tue 29-Oct Oat's type system; Objects PDF Project 5 (OAT v2) released P4 P5
18Thu 31-Oct Object ctd. PDF P5
19Tue 5-Nov Optimization PDF
Steve away
Guest lecturer: Elisavet Kozyri
20Thu 7-Nov Dataflow analysis A10, A17 PDF P5
21Tue 12-Nov Register allocation A11 PDF Project 6 (Dataflow analysis and Register Allocation) released P5 P6
22Thu 14-Nov Register allocation PDF P5 P6
23Tue 19-Nov Loop optimizations A18 PDF P5 P6
24Thu 21-Nov Embedded EthiCS module: Ethics of Open Source PDF
Lecturer: Meica Magnani
25Tue 26-Nov Garbage Collection A13 PDF P6
26Tue 3-Dec Guest lecture: Evan Czaplicki '12, The Economics of Programming Languages PDF P6
Reading Week
Thu 19-Dec Final Exam, 9am-12pm.