Schedule
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.
See below for lecture notes.
Lecture videos are on the Panopto page. Lecture videos are typically available within 24 hours of the lecture. All students in the course are allowed to access the videos. Make sure that you are logged in.
The lecture notes here contain material from lecture notes by Steve Zdancewic Links to an external site., Greg Morrisett Links to an external site., Jean-Baptiste Tristan Links to an external site., and Elisavet Kozyri Links to an external site..
Homework dates
- HW1: HellOCaml
- due Monday Sept 13
- HW2: X86Lite
- due Monday Sept 27
- HW3: LLVMLite
- due Wednesday Oct 20
- HW4: Oat v1
- due Wednesday Nov 3
- HW5: Oat Typechecking
- due Tuesday Nov 23
- HW6: Dataflow Analysis and Optimizations
- due Thursday Dec 2 (everyone may use up to 3 late days)
Lecture Notes
- Lec01-Intro.pdf Download Lec01-Intro.pdf
- Lec02-Assembly.pdf Download Lec02-Assembly.pdf
- Lec03-Assembly2.pdf
Download Lec03-Assembly2.pdf
- Lec02.zip Download Lec02.zip (includes x86.ml and other files)
- Lec04-IR.pdf Download Lec04-IR.pdf
- Lec05-IR2.pdf Download Lec05-IR2.pdf
- Lec06-LLVM.pdf Download Lec06-LLVM.pdf
- Lec07-Datastructs.pdf Download Lec07-Datastructs.pdf
- Lec08-Lexing.pdf Download Lec08-Lexing.pdf
- Lec09-Parsing.pdf Download Lec09-Parsing.pdf
- Lec10-LL-Parsing.pdf Download Lec10-LL-Parsing.pdf
- Lec11-LR-Parsing.pdf Download Lec11-LR-Parsing.pdf
- Lecture 12: Embedded EthiCS module on Free Software: Freedoms and Responsibilities
- Slides (pdf) Download Slides (pdf)
- Pre-reading: GNU Manifesto (pdf) Download GNU Manifesto (pdf) also available at https://www.gnu.org/gnu/manifesto.en.html Links to an external site.
- An Intellectual Property Cheat Sheet Download An Intellectual Property Cheat Sheet by Trystan S. Goetze
- Lec13-Functions.pdf Download Lec13-Functions.pdf
- Lec14-Function-compilation.pdf Download Lec14-Function-compilation.pdf
- Lec15-Type-checking.pdf Download Lec15-Type-checking.pdf
- Lec16-Subtyping.pdf Download Lec16-Subtyping.pdf
- Lec17-Subtyping-ctd.pdf Download Lec17-Subtyping-ctd.pdf
- Lec18-Optimization.pdf Download Lec18-Optimization.pdf
- Lec19-Dataflow-analysis.pdf Download Lec19-Dataflow-analysis.pdf
- Lec20-Reg-alloc.pdf Download Lec20-Reg-alloc.pdf
- Lec21-Reg-alloc-ctd.pdf Download Lec21-Reg-alloc-ctd.pdf
- Lec22-Objects.pdf Download Lec22-Objects.pdf
- Lec23-Garbage-collection.pdf Download Lec23-Garbage-collection.pdf
- Lec24-Verified-compilation.pdf Download Lec24-Verified-compilation.pdf