Jan 17 |
Compiler Design ; Inductive Definitions |
|
|
Jan 19 |
Instruction Selection |
|
|
Jan 20 |
Recitation: Intro and L1 Tips |
Lab 1 |
|
Jan 24 |
Register Allocation I |
Written 1 |
Team Registration |
Jan 26 |
Register Allocation II (Proof of MCS-Chordality theorem) |
|
|
Jan 27 |
Recitation: Register Allocation |
|
|
Jan 31 |
Liveness Analysis |
|
Written 1 |
Feb 2 |
Intermediate Representations |
|
|
Feb 3 |
Recitation: Lab 2, From AST to Assembly |
Lab 2 |
Lab 1 |
Feb 7 |
Static Semantics |
Written 2 |
|
Feb 9 |
Lexical Analysis |
|
|
Feb 10 |
Recitation: Static Semantics |
|
|
Feb 14 |
Context-Free Grammars |
|
Written 2 |
Feb 16 |
Shift-Reduce Parsing |
|
|
Feb 17 |
Recitation: Lexing and Parsing |
Lab 3 |
Lab 2 |
Feb 21 |
Calling Conventions |
Written 3 |
Lab 2 Test Feedback |
Feb 23 |
Single Static Assignment Form |
|
|
Feb 24 |
Recitation: Calling Conventions & SSA |
|
|
Feb 28 |
Dynamic Semantics (Slides) |
|
|
Mar 2 |
Mutable Store (Slides) |
|
|
Mar 3 |
Recitation: Dynamic Semantics |
|
Lab 3 |
Mar 7 |
No lecture |
|
|
Mar 9 |
No lecture |
|
|
Mar 10 |
No recitation |
Lab 4 |
|
Mar 14 |
Structs (Slides) |
Written 4 |
Code Review |
Mar 16 |
Dataflow Analysis |
|
|
Mar 17 |
Recitation: Memory |
|
|
Mar 21 |
Optimizing Register Allocation |
|
Written 4 |
Mar 23 |
Peephole Optimization & Common Subexpression Elimination |
|
|
Mar 24 |
Recitation: Optimization I |
Lab 5 |
|
Mar 28 |
Memory Optimizations |
|
Lab 4 |
Mar 30 |
Loop Optimizations (Slides) |
|
Lab 4 Test Feedback |
Mar 31 |
Recitation: Optimization II |
|
|
Apr 4 |
Function Optimization & Project Overview |
|
Lab 6 Project Proposal |
Apr 6 |
LLVM |
|
|
Apr 7 |
No Recitation |
Lab 6 |
|
Apr 11 |
Garbage Collection & First-Class Functions (Slides) |
|
Lab 5 |
Apr 13 |
No Lecture (Carnival) |
|
|
Apr 14 |
No Recitation |
|
|
Apr 18 |
Guest Lecture: Yaron Misnky |
|
|
Apr 20 |
Verified Compilation & CompCert |
|
|
Apr 21 |
No Recitation |
|
|
Apr 25 |
Resource Aware ML |
|
|
Apr 27 |
No Lecture (Project Day) |
|
|
Apr 28 |
No Recitation |
|
|
May 2 |
|
|
Lab 6 (compiler) |
May 4 |
|
|
Lab 6 (report) |