Schedule
- Lectures
- Recitations
- Labs
- Written
- Integrated (lectures, recitations, Labs, and writtens all in one big mess)
Lectures
| Date | Topic | Release | Deadlines |
|---|---|---|---|
| Jan 13 | Overview, Notes | Lab 0 | Jan 14: Questionnaire Jan 19: Team Formation |
| Jan 15 | Register Allocation, Notes | Lab 1 | Jan 24: Tests & Checkpoint Jan 28: Compiler |
| Jan 20 | Register Allocation / Intro to SSA | Written 1 | Jan 28 |
| Jan 22 | Instruction Selection, Notes | ||
| Jan 27 | SSA | Lab 2 | Feb 4: Tests Feb 14: Compiler |
| Jan 29 | Middle End, Notes | ||
| Feb 3 | IR-tree, Liveness, Lexing, IR Notes, Liveness Notes | Written 2 | Feb 11 |
| Feb 5 | Lexing and Parsing, Notes | ||
| Feb 10 | Shift-reduce Parsing, Notes | ||
| Feb 12 | Typechecking | ||
| Feb 13 | Lab 3 | Feb 21: Tests Feb 28: Compiler | |
| Feb 17 | Calling Conventions | Written 3 | Feb 25 |
| Feb 19 | Dataflow Analysis | ||
| Feb 24 | No Class | ||
| Feb 26 | Dataflow Analysis - II, LLVM | ||
| Feb 27 | Lab LLVM | Mar 14 | |
| Mar 3 | Spring Break (No Class) | ||
| Mar 5 | Spring Break (No Class) | ||
| Mar 10 | Dynamic Semantics, Notes | Written 4 | Mar 20 |
| Mar 12 | Mutable Store, Notes | ||
| Mar 13 | Lab 4 | Mar 21: Tests Mar 28: Compiler | |
| Mar 17 | Structs, Notes | ||
| Mar 19 | Optimization I, Notes | ||
| Mar 24 | Optimization II, Notes | ||
| Mar 26 | No Lecture | ||
| Mar 27 | Lab 5 | Apr 13: Tests & CheckPoint Apr 25: Compiler May 2: Report | |
| Mar 31 | Alias Analysis, Data Dependence, Wolf & Lam paper | ||
| Apr 2 | GVN (By Ben Titzer) | ||
| Apr 7 | JITs/Dynamic Optimization (Guest Lecture), Virtual Machines & Managed Runtimes | ||
| Apr 9 | Dependence Analysis | ||
| Apr 14 | Guest Lecture by Jane Street | ||
| Apr 16 | Code Layout, Function Inlining | ||
| Apr 21 | Project Day (Office hours) | ||
| Apr 23 | wrap-up |
Recitations
| Date | Recitation | Solution |
|---|---|---|
| Jan 16 | Lab 1 Intro / Course Overview | Solution |
| Jan 23 | Instruction Selection | Solution |
| Jan 30 | SSA | Solution |
| Feb 6 | Statics Semantics | Solution |
| Feb 13 | Lexing and Parsing | Solution |
| Feb 20 | Calling Conventions | Solution |
| Feb 27 | LLVM & Dynamics | Solution |
| Mar 6 | No Recitation | |
| Mar 13 | Memory & Dynamic Semantics | Solution |
| Mar 20 | Optimizations I | Solution |
| Mar 27 | Optimizations II | Solution |
| Apr 3 | No Recitation | |
| Apr 10 | No Recitation | |
| Apr 17 | No Recitation | |
| Apr 24 | Lab 5 In-Class Review |
Integrated Schedule
The deadlines may not be accurate, please check the Labs and Written schedules for accurate deadlines. All deadlines are 11:59pm of the day listed.
| Week | Date | Topic | Release | Deadline | |
|---|---|---|---|---|---|
| 1 | Tue | Jan 13 | Lecture: Overview, Notes | Lab 0 | |
| Wed | Jan 14 | Lab 0 Questionnaire | |||
| Thu | Jan 15 | Lecture: Register Allocation, Notes | Lab 1 | ||
| Fri | Jan 16 | Recitation: Lab 1 Intro / Course Overview, Solution | |||
| 2 | Mon | Jan 19 | Lab 0 Team Formation | ||
| Tue | Jan 20 | Lecture: Register Allocation / Intro to SSA | Written 1 | ||
| Thu | Jan 22 | Lecture: Instruction Selection, Notes | |||
| Fri | Jan 23 | Recitation: Instruction Selection, Solution | |||
| Sat | Jan 24 | Lab 1 Tests Lab 1 Checkpoint | |||
| Sun | Jan 25 | ||||
| 3 | Tue | Jan 27 | Lecture: SSA | Lab 2 | |
| Wed | Jan 28 | Lab 1 Compiler Written 1 | |||
| Thu | Jan 29 | Lecture: Middle End, Notes | |||
| Fri | Jan 30 | Recitation: SSA, Solution | |||
| 4 | Tue | Feb 3 | Lecture: IR-tree, Liveness, Lexing, IR Notes, Liveness Notes | Written 2 | |
| Wed | Feb 4 | Lab 2 Tests | |||
| Thu | Feb 5 | Lecture: Lexing and Parsing, Notes | |||
| Fri | Feb 6 | Recitation: Statics Semantics, Solution | |||
| 5 | Tue | Feb 10 | Lecture: Shift-reduce Parsing, Notes | ||
| Wed | Feb 11 | Written 2 | |||
| Thu | Feb 12 | Lecture: Typechecking | |||
| Fri | Feb 13 | Recitation: Lexing and Parsing, Solution | Lab 3 | ||
| Sat | Feb 14 | Lab 2 Compiler | |||
| Sun | Feb 15 | ||||
| 6 | Tue | Feb 17 | Lecture: Calling Conventions | Written 3 | |
| Thu | Feb 19 | Lecture: Dataflow Analysis | |||
| Fri | Feb 20 | Recitation: Calling Conventions, Solution | |||
| Sat | Feb 21 | Lab 3 Tests | |||
| Sun | Feb 22 | ||||
| 7 | Tue | Feb 24 | Lecture: No Class | ||
| Wed | Feb 25 | Written 3 | |||
| Thu | Feb 26 | Lecture: Dataflow Analysis - II, LLVM | |||
| Fri | Feb 27 | Recitation: LLVM & Dynamics, Solution | Lab LLVM | ||
| Sat | Feb 28 | Lab 3 Compiler | |||
| Sun | Mar 1 | ||||
| 8 | Tue | Mar 3 | Spring Break (No Class) | ||
| Thu | Mar 5 | Spring Break (No Class) | |||
| 9 | Tue | Mar 10 | Lecture: Dynamic Semantics, Notes | Written 4 | |
| Thu | Mar 12 | Lecture: Mutable Store, Notes | |||
| Fri | Mar 13 | Recitation: Memory & Dynamic Semantics, Solution | Lab 4 | ||
| Sat | Mar 14 | Lab LLVM Compiler | |||
| Sun | Mar 15 | ||||
| 10 | Tue | Mar 17 | Lecture: Structs, Notes | ||
| Thu | Mar 19 | Lecture: Optimization I, Notes | |||
| Fri | Mar 20 | Recitation: Optimizations I, Solution | Written 4 | ||
| Sat | Mar 21 | Lab 4 Tests | |||
| Sun | Mar 22 | ||||
| 11 | Tue | Mar 24 | Lecture: Optimization II, Notes | ||
| Thu | Mar 26 | Lecture: No Lecture | |||
| Fri | Mar 27 | Recitation: Optimizations II, Solution | Lab 5 | ||
| Sat | Mar 28 | Lab 4 Compiler | |||
| Sun | Mar 29 | ||||
| 12 | Tue | Mar 31 | Lecture: Alias Analysis, Data Dependence, Wolf & Lam paper | ||
| Thu | Apr 2 | Lecture: GVN (By Ben Titzer) | |||
| 13 | Tue | Apr 7 | Lecture: JITs/Dynamic Optimization (Guest Lecture), Virtual Machines & Managed Runtimes | ||
| Thu | Apr 9 | Lecture: Dependence Analysis | |||
| 14 | Mon | Apr 13 | Lab 5 Tests Lab 5 CheckPoint | ||
| Tue | Apr 14 | Lecture: Guest Lecture by Jane Street | |||
| Thu | Apr 16 | Lecture: Code Layout, Function Inlining | |||
| 15 | Tue | Apr 21 | Lecture: Project Day (Office hours) | ||
| Thu | Apr 23 | Lecture: wrap-up | |||
| Fri | Apr 24 | Recitation: Lab 5 In-Class Review | |||
| Sat | Apr 25 | Lab 5 Compiler | |||
| Sun | Apr 26 | ||||
| 16 | Sat | May 2 | Lab 5 Report | ||
| Sun | May 3 | ||||