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