Aug 30 |
Overview |
Compiler Design |
|
Sept 1 |
Backend |
Instruction Selection |
|
Sept 6 |
|
Register Allocation |
Teaming |
Sept 8 |
|
Liveness Analysis |
|
Sept 13 |
|
Dataflow Analysis |
Lab 1 Tests |
Sept 15 |
Frontend |
Lexical Analysis |
Written Homework 1 |
Sept 20 |
|
Context-Free Grammars |
Lab 1 Compiler |
Sept 22 |
|
Shift-Reduce Parsing |
Handout |
Sept 27 |
Middle |
Static Semantics |
Lab 2 Tests |
Sept 29 |
|
Intermediate Representations |
Written Homework 2 |
Oct 4 |
|
Single Static Assignment Form |
Lab 2 Compiler |
Oct 6 |
Extensions |
Calling Conventions; Slides |
|
Oct 11 |
|
Dynamic Semantics I; Notes |
Lab 3 Tests |
Oct 13 |
|
Dynamic Semantics II;Slides |
Written Homework 3 |
Oct 18 |
|
Mutable Store; Notes; Slides |
Lab 3 Compiler |
Oct 20 |
|
Structs; Notes; Slides |
|
Oct 25 |
Optimization |
Register Coalescing & Simple Optimizations |
Code review |
Oct 27 |
|
Common Subexpression Elimination |
Code review |
Nov 1 |
|
Memory Optimizations |
Lab 4 Tests |
Nov 3 |
|
Loop Optimizations |
Written Homework 4 |
Nov 8 |
Projects |
Function Optimization & Project Overview |
Lab 4 Compiler |
Nov 10 |
|
Guest lecture: Jingze Wu - Compiler Design at Facebook |
|
Nov 15 |
|
Concurrent C0 |
|
Nov 17 |
|
Garbage Collection |
Project proposal |
Nov 22 |
No class |
Project day |
Lab 5 Compiler |
Nov 24 |
No class |
Thanksgiving |
|
Nov 29 |
|
First-class functions; Slides |
Lab 5 Report |
Dec 1 |
|
LLVM |
|
Dec 6 |
|
Verified compilation & CompCert ; Xavier Leroy’s Slides |
|
Dec 8 |
|
More verified compilation |
Lab 6 |
Dec 13 |
No class |
Finals Week |
Lab 6 Report |
Dec 15 |
No class |
Finals Week |
|