Schedule
Date |
| Topic |
| Notes |
| Due |
| Intro to compilers, Racket language |
|
| |||
| Assembly, first compiler |
|
| |||
| Unary primitives, control flow |
|
| |||
| Disjoint datatypes, I/O, system calls, ABI |
|
| |||
| Errors, type tag checking |
|
| |||
| Binding and variables, run-time stack, compile-time environment |
|
| |||
| Binary operations |
|
| |||
| Inductive data, memory allocation, pointer values |
|
| |||
| Inductive data, memory allocation, pointer values |
|
| |||
6/12 |
| Exam, no lecture |
|
| ||
| Array data, pointer offsets, mutation |
|
| |||
| Function definitions and calls |
|
| |||
| Function definitions and calls |
|
| |||
| Tail calls |
|
| |||
6/19 |
| Juneteenth Holiday, no lecture |
|
| ||
6/22 |
| No class, A/C outage |
|
| ||
| Lambda |
|
| |||
| Pattern matching, interpretation |
|
| |||
| Pattern matching, compilation |
|
| |||
6/26 |
| Exam, no lecture |
|
| ||
6/29 |
| Symbols, static and dynamic interning |
|
| ||
6/30 |
| Compound static data |
|
| ||
7/1 |
| Structures |
|
| ||
7/2 |
| Source transformations |
|
| ||
7/3 |
| Independence Day Holiday, no lecture |
|
| ||
7/6 |
| Peephole optimizations |
|
| ||
7/7 |
| Garbage collection |
|
| ||
7/8 |
| Self-hosting |
|
| ||
7/9 |
| Conclusion |
|
| ||
7/10 |
| Exam, no lecture |
|
| E3 |