CS 516: Compilers - Spring 2024¶
Course Information¶
Instructor
Teaching Assistants
Mihai Nicola
Robert Feliciano
Note
All Locations, Times, Contact in Canvas
Homework Projects¶
Points |
Description |
Due (tentative) |
|---|---|---|
75pts |
HW1: HelloCaml |
2/2 |
25pts |
HW2: X86 Simulator |
2/9 |
75pts |
HW3: X86 Assembler |
2/16 |
100pts |
HW4: LLVM Lite |
3/2 |
25pts |
HW5: Lexing and Parsing |
3/23 |
85pts |
HW6: Frontend Compilation |
4/06 |
50pts |
HW7: Typechecking |
4/13 |
50pts |
HW8: Compiling structs and function pointers |
4/20 |
30pts |
HW9: Dataflow Analysis, Alias Analysis, Dead Code |
4/27 |
70pts |
HW10: Constant Propagation, Register Allocation, Experiments |
5/04 |
Textbooks and Resources¶
There is no required textbook for this course. However, you may find the following references useful for digging deeper into course topics.
On Principles of Compiler Construction
Compilers: Principles, Techniques, and Tools (2nd Edition) by Aho, Lam, Sethi, and Ullman
Advanced Compiler Design and Implementation by Muchnick
Modern Compiler Implementation in ML by Appel
On Types and Type Systems
Types and Programming Languages by Pierce
Advanced Topics in Types and Programming Languages by Pierce et al.
On Program Analysis
Principles of Program Analysis by Nielson, Nielson, and Hankin
On OCaml
Introduction to Objective Caml by Jason Hickey
Real World OCaml by Yaron Minsky, Anil Madhavapeddy, and Jason Hickey