Aug 27 |
Overview |
Overview |
|
Aug 29 |
Backend |
Instruction Selection (notes) |
|
Sep 3 |
|
Register Allocation |
Teaming |
Sep 5 |
|
Liveness Analysis |
|
Sep 10 |
(No class) |
|
Lab 1 Tests |
Sep 12 |
Frontend |
Lexical Analysis |
Written Homework 1 |
Sep 17 |
|
Parsing |
Lab 1 Compiler |
Sep 19 |
|
Parsing II |
|
Sep 24 |
Middle |
Static Single Assignment |
Lab 2 Tests |
Sep 26 |
|
The Middle-End (notes: Static Semantics, IR) |
Written Homework 2 |
Oct 1 |
(No class) |
|
Lab 2 Compiler |
Oct 3 |
|
Calling Conventions (notes) |
|
Oct 8 |
|
Typechecking |
Lab 3 Tests |
Oct 10 |
Extensions |
Dynamic Semantics (notes) |
Written Homework 3 (10/12) |
Oct 15 |
|
Mutable Store (notes) |
Lab 3 Compiler |
Oct 17 |
|
Structs (notes) |
|
Oct 22 |
Optimization |
Dataflow Analysis |
Code review |
Oct 24 |
|
Dataflow Analysis (Lattices & Solvers) |
Lab 4 Tests (10/25) |
Oct 29 |
|
Dataflow Optimizations: PRE (krs92, bgs98) |
Lab 4 Checkpoint |
Oct 31 |
|
Loops |
Written Homework 4 (11/3) |
Nov 5 |
|
Locality 1 |
Lab 4 Compiler |
Nov 7 |
|
Locality 2 (paper) |
|
Nov 12 |
|
Alias Analysis (notes) |
|
Nov 14 |
|
SSA Revisited |
Project proposal (11/17) |
Nov 19 |
|
Guest Lecture by Yaron Minsky (Jane Street) |
Lab 5 Compiler |
Nov 21 |
|
Scheduling |
|
Nov 26 |
(No class) |
Project day |
Lab 5 Report |
Nov 28 |
(No class) |
Thanksgiving |
|
Dec 3 |
|
Guest Lecture by Frank Pfenning: Concurrent C0 |
|
Dec 5 |
|
Compiling Multi-threaded Programs |
|
Dec 10 |
(No class) |
Finals Week |
Lab 6 |
Dec 12 |
(No class) |
Finals Week |
Lab 6 Report |