| Aug 28 |
Overview |
Compiler Design ; Inductive Definitions |
|
| Aug 30 |
Backend |
Instruction Selection |
|
| Sep 4 |
|
Register Allocation I |
Teaming |
| Sep 6 |
|
Register Allocation II (Proof of MCS-Chordality theorem) |
|
| Sep 11 |
|
Liveness Analysis |
Lab 1 Tests |
| Sep 13 |
Frontend |
Lexical Analysis |
Written Homework 1 |
| Sep 18 |
|
Context-Free Grammars |
Lab 1 Compiler |
| Sep 20 |
|
Shift-Reduce Parsing |
|
| Sep 25 |
Middle |
Intermediate Representations |
Lab 2 Tests |
| Sep 27 |
|
Static Semantics |
Written Homework 2 |
| Oct 2 |
|
Static Semantics II (see Sep 27 for notes) |
Lab 2 Compiler |
| Oct 4 |
|
Single Static Assignment Form |
|
| Oct 9 |
Extensions |
Calling Conventions; Slides |
Lab 3 Tests |
| Oct 11 |
|
Dynamic Semantics; Slides |
Written Homework 3 |
| Oct 16 |
|
Mutable Store; Notes; Slides |
Lab 3 Compiler |
| Oct 18 |
|
Structs; Notes; Slides |
|
| Oct 23 |
Optimization |
Dataflow Analysis |
|
| Oct 25 |
|
Register Coalescing |
Code review |
| Oct 30 |
|
Peephole Optimization & Common Subexpr. Elimination |
Lab 4 Tests |
| Nov 1 |
|
Memory Optimizations |
Written Homework 4 |
| Nov 6 |
|
Loop Optimizations; Slides |
Lab 4 Compiler |
| Nov 8 |
Projects |
Function Optimization & Project Overview |
|
| Nov 13 |
|
Garbage Collection & LLVM |
|
| Nov 15 |
|
Guest Lecture by Yaron Minsky (Jane Street) |
Project proposal |
| Nov 20 |
No class |
Project day |
Lab 5 Compiler |
| Nov 22 |
No class |
Thanksgiving |
|
| Nov 27 |
|
First-class functions; Slides |
Lab 5 Report |
| Nov 29 |
|
411 TAs: Lab 6 Projects |
|
| Dec 4 |
|
Verified compilation & CompCert ; Xavier Leroy’s Slides |
|
| Dec 6 |
|
Frank Pfenning: Concurrent C0 |
Lab 6 |
| Dec 11 |
No class |
Finals Week |
Lab 6 Report |
| Dec 13 |
No class |
Finals Week |
|