Schedule
Date |
| Topic |
| Notes |
| Due |
9/1 |
| Intro to compilers, Racket language |
|
| ||
9/3 |
| Assembly, first compiler |
|
| ||
9/8 |
| Unary primitives, control flow |
|
| ||
9/10 |
| Disjoint datatypes, I/O, system calls, ABI |
|
| ||
9/15 |
| Errors, type tag checking |
|
| ||
9/17 |
| Binding and variables, run-time stack, compile-time environment |
|
| ||
9/22 |
| Binary operations |
|
| ||
9/24 |
| Inductive data, memory allocation, pointer values |
|
| ||
9/29 |
| Inductive data, memory allocation, pointer values |
|
| ||
10/1 |
|
|
| |||
10/6 |
| Array data, pointer offsets, mutation |
|
| ||
10/8 |
| Strings |
|
| ||
10/13 |
| No class: Fall Break |
|
| ||
10/15 |
| slack |
|
| ||
10/20 |
| Function definitions and calls |
|
| ||
10/22 |
| Function definitions and calls |
|
| ||
10/27 |
| Tail calls |
|
| ||
10/29 |
| Pattern matching, interpretation |
|
| ||
11/3 |
| Pattern matching, compilation |
|
| ||
11/5 |
|
|
| |||
11/10 |
| Lambda |
|
| ||
11/12 |
| Lambda |
|
| ||
11/17 |
| Symbols, static and dynamic interning |
|
| ||
11/19 |
| Compound static data |
|
| ||
11/24 |
| Slack |
|
| ||
11/26 |
| No class: Thanksgiving |
|
| ||
12/1 |
| Structures |
|
| ||
12/3 |
| Self-hosting |
|
| ||
12/8 |
| Self-hosting |
|
| ||
12/11 |
| Slack |
|
|
Final exam: December 17, 10:30am–12:30pm.