15-411

Schedule

Date Unit Topic Homework
Aug 29 Overview Compiler Design ; Inductive Definitions  
Aug 31 Backend Instruction Selection  
Sept 5   Register Allocation I Teaming
Sept 7   Register Allocation II (see Sep 5 for notes)  
Sept 12   Liveness Analysis Lab 1 Tests
Sept 14 Frontend Lexical Analysis Written Homework 1
Sept 19   Context-Free Grammars Lab 1 Compiler
Sept 21   Shift-Reduce Parsing  
Sept 26 Middle Static Semantics Lab 2 Tests
Sept 28   Static Semantics II (see Sep 26 for notes) Written Homework 2
Oct 3   Intermediate Representations Lab 2 Compiler
Oct 5   Single Static Assignment Form  
Oct 10 Extensions Calling Conventions; Slides Lab 3 Tests
Oct 12   Dynamic Semantics; Slides Written Homework 3
Oct 17   Mutable Store; Notes; Slides Lab 3 Compiler
Oct 19   Structs; Notes; Slides  
Oct 24 Optimization Dataflow Analysis  
Oct 26   Register Coalescing Code review
Oct 31   Peephole Optimization & Common Subexpr. Elimination Lab 4 Tests
Nov 2   Memory Optimizations Written Homework 4
Nov 7   Loop Optimizations; Slides Lab 4 Compiler
Nov 9 Projects Function Optimization & Project Overview  
Nov 14   Guest Lecture by Yaron Minsky (Jane Street)  
Nov 16   Garbage Collection & LLVM Project proposal
Nov 21 No class Project day Lab 5 Compiler
Nov 23 No class Thanksgiving  
Nov 28   First-class functions; Slides Lab 5 Report
Nov 30   Concurrent C0  
Dec 5   Verified compilation & CompCert ; Xavier Leroy’s Slides  
Dec 7   More verified compilation Lab 6
Dec 12 No class Finals Week Lab 6 Report
Dec 14 No class Finals Week  


Date Recitation
Sept 1 Intro and L1 Tips
Sept 8 Backend
Sept 15 Lexing
Sept 22 Parsing
Sept 29 Lab 2, From AST to Assembly
Oct 6 Calling Conventions
Oct 13 Miscellaneous
Oct 20 No Recitation – Mid-Semester Break
Oct 27 No Recitation – Code Reviews
Nov 3 Memory