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 |
|