Schedule
Date |
| Topic |
| Notes |
| Due |
6/1 |
| Intro to compilers, Racket language, a86 assembly |
|
| ||
6/2 |
| First compiler, control flow, type tags |
|
| ||
6/3 |
| I/O, system calls, ABI |
|
| ||
6/4 |
| Errors, type tag checking |
|
| ||
6/5 |
| Binding and variables, run-time stack, compile-time environment |
|
| ||
6/8 |
| Binary operations |
|
| ||
6/9 |
| Inductive data, memory allocation, pointer values |
|
| ||
6/10 |
| Array data, pointer offsets, mutation |
|
| ||
6/11 |
| Slack |
|
| A3 | |
6/12 |
| Exam, no lecture |
|
| ||
6/15 |
| Function definitions and calls |
|
| A4 | |
6/16 |
| Tail calls |
|
| ||
6/17 |
| First-class functions, closures |
|
| ||
6/18 |
| First-class functions, code pointers, environments |
|
| A5 | |
6/19 |
| Juneteenth Holiday, no lecture |
|
| ||
6/22 |
| Pattern matching, interpretation |
|
| A6 | |
6/23 |
| Pattern matching, compilation |
|
| ||
6/24 |
| Symbols, static and dynamic interning |
|
| ||
6/25 |
| Compound static data |
|
| A7 | |
6/26 |
| Exam, no lecture |
|
| ||
6/29 |
| Structures |
|
| A8 | |
6/30 |
| Slack |
|
| ||
7/1 |
| Source transformations |
|
| ||
7/2 |
| Peephole optimizations |
|
| A9 | |
7/3 |
| Independence Day Holiday, no lecture |
|
| ||
7/6 |
| Garbage collection |
|
| A10 | |
7/7 |
| Self-hosting |
|
| ||
7/8 |
| Conclusion |
|
| ||
7/9 |
| Slack |
|
| ||
7/10 |
| Exam, no lecture |
|
| E3 |