Schedule

DateTopicSlidesHandouts
1/14
1/16Introductions: Compilers, Interpreters, and OCamllec01.pdflec01.zip
1/21OCaml Crash Course: the SIMPLE languagelec02.pdfsimple.ml
1/23SIMPLE to OCaml Translationlec03.pdftranslate.ml
1/28X86litelec04.pdflec04.zip
1/29HW01  (HW1: Hellocaml) due
1/30X86lite: Calling Conventions / code generationlec05.pdflec04.zip
2/4Code Generation / Intermediate Representations Ilec06.pdflec05.zip
lec06.zip
2/6Intermediate Representationas IIlec07.pdflec06.zip
2/11LLVM IR, Data Typeslec08.pdf
2/12HW02  (HW2: X86lite simulator) due
2/13LLVM IR Data Typeslec09.pdf
2/18Lexing: DFAs and ocamllexlec10.pdflec10.zip
2/20Parsing I: Context Free Grammarslec11.pdflec11.zip
2/25Parsing II: LR(0) parsinglec12.pdflec11.zip
2/26HW03  (HW3: LLVMlite backend) due
2/27Parsing III: LR(1) Parsinglec13.pdflec13.zip
3/4OAT v1 overview, First-class Functions I: lambda calculuslec14.pdf
3/6Midterm
3/11Spring Break
3/13Spring Break
3/18First-class Functions II: lambda calculuslec15.pdflec15.zip
3/20Closure Conversion / Judgments & Derivations / Scope Checkinglec16.pdflec15.zip
3/25Types I: Typecheckinglec17.pdf
3/26HW04  (HW4: Oat language compiler v.1) due
3/27Types II: Rich Types, Subtyping, Mutabilitylec18.pdf
4/1Compiling with Types, Objectslec19.pdf
4/3Objects, Inheritance, and Dynamic Dispatchlec20.pdf
4/8Optimizations Ilec21.pdfopt-example.c
opt-example.oat
4/09HW05  (HW5: Oat language compiler v.2) due
4/10Optimizations II, Data Flow Analysislec22.pdf
4/15Data Flow Analysis IIlec23.pdf
4/17Register Allocation / Control-flow Analysislec24.pdf
4/22Control-flow Analysis / Phi-Nodeslec25.pdf
4/24Lecture Cancelled -- Dr. Zdancewic away
4/29Misc. Topics / Course Wrap Uplec26.pdf
4/30HW06  (HW6: Analysis & Optimizations) due
5/8Final Exam: noon-2:00 PM Towne 100