Schedule¶
Date | Topic | Slides | Handouts |
1/14 | |||
1/16 | Introductions: Compilers, Interpreters, and OCaml | lec01.pdf | lec01.zip |
1/21 | OCaml Crash Course: the SIMPLE language | lec02.pdf | simple.ml |
1/23 | SIMPLE to OCaml Translation | lec03.pdf | translate.ml |
1/28 | X86lite | lec04.pdf | lec04.zip |
1/29 | HW01 (HW1: Hellocaml) due | ||
1/30 | X86lite: Calling Conventions / code generation | lec05.pdf | lec04.zip |
2/4 | Code Generation / Intermediate Representations I | lec06.pdf | lec05.zip lec06.zip |
2/6 | Intermediate Representationas II | lec07.pdf | lec06.zip |
2/11 | LLVM IR, Data Types | lec08.pdf | |
2/12 | HW02 (HW2: X86lite simulator) due | ||
2/13 | LLVM IR Data Types | lec09.pdf | |
2/18 | Lexing: DFAs and ocamllex | lec10.pdf | lec10.zip |
2/20 | Parsing I: Context Free Grammars | lec11.pdf | lec11.zip |
2/25 | Parsing II: LR(0) parsing | lec12.pdf | lec11.zip |
2/26 | HW03 (HW3: LLVMlite backend) due | ||
2/27 | Parsing III: LR(1) Parsing | lec13.pdf | lec13.zip |
3/4 | OAT v1 overview, First-class Functions I: lambda calculus | lec14.pdf | |
3/6 | Midterm | ||
3/11 | Spring Break | ||
3/13 | Spring Break | ||
3/18 | First-class Functions II: lambda calculus | lec15.pdf | lec15.zip |
3/20 | Closure Conversion / Judgments & Derivations / Scope Checking | lec16.pdf | lec15.zip |
3/25 | Types I: Typechecking | lec17.pdf | |
3/26 | HW04 (HW4: Oat language compiler v.1) due | ||
3/27 | Types II: Rich Types, Subtyping, Mutability | lec18.pdf | |
4/1 | Compiling with Types, Objects | lec19.pdf | |
4/3 | Objects, Inheritance, and Dynamic Dispatch | lec20.pdf | |
4/8 | Optimizations I | lec21.pdf | opt-example.c opt-example.oat |
4/09 | HW05 (HW5: Oat language compiler v.2) due | ||
4/10 | Optimizations II, Data Flow Analysis | lec22.pdf | |
4/15 | Data Flow Analysis II | lec23.pdf | |
4/17 | Register Allocation / Control-flow Analysis | lec24.pdf | |
4/22 | Control-flow Analysis / Phi-Nodes | lec25.pdf | |
4/24 | Lecture Cancelled -- Dr. Zdancewic away | ||
4/29 | Misc. Topics / Course Wrap Up | lec26.pdf | |
4/30 | HW06 (HW6: Analysis & Optimizations) due | ||
5/8 | Final Exam: noon-2:00 PM Towne 100 |