Date
|
Topic
|
Readings
|
Lab
|
Assignment due
|
Other
|
W |
Apr 3 |
Intro, What is a compiler? |
|
|
|
|
F |
5 |
preliminaries, assembly language |
|
|
|
|
M |
8 |
overview of compiler stages, discussion of x86_64 assembly |
Ch. 1 & 2 |
Lab 1
|
|
|
W |
10 |
x86_64 instructions, addressing modes, calling convention |
|
|
|
|
F |
12 |
register allocation I |
Ch. 3 |
|
|
|
M |
15 |
register allocation II, R2 |
|
|
|
|
W |
17 |
remove-complex-opera*, explicate control |
|
|
|
|
F |
19 |
Debugging tools: lldb, objdump |
|
|
Assignment 1 due
|
|
M |
22 |
R2, C1, x861 |
|
|
|
|
W |
24 |
explicate control II |
|
|
|
|
F |
26 |
|
|
|
|
|
M |
29 |
|
|
|
|
|
W |
May 1 |
|
|
|
|
|
F |
3 |
|
|
|
Assignment 2 due
|
|
M |
6 |
Tuples, type-checking |
|
|
|
|
W |
8 |
Garbage Collection I |
|
|
|
|
F |
10 |
Garbage Collection II |
|
|
|
|
M |
13 |
Function Calls |
|
|
|
|
W |
15 |
Tail Calling |
|
|
|
|
F |
17 |
Closure Conversion |
|
|
|
|
M |
20 |
TBA |
|
|
|
|
W |
22 |
TBA |
|
|
|
|
F |
24 |
Demos |
|
|
Assignment 3 due
|
|
M |
27 |
Support |
|
|
|
|
W |
29 |
Support |
|
|
|
|
F |
31 |
Tail-calling |
|
|
|
|
M |
Jun 3 |
Support |
|
|
|
|
W |
5 |
QUIZ, Support |
|
|
|
|
F |
7 |
Support |
|
|
|
|
W |
12 |
|
|
|
Assignment 4 (tba) |
|