Section | Topic | Readings (A=Appel, C=Cooper, D=Dragon) |
Introduction | Course overview | A1 |
Lexical Analysis | RE, automata, lexer | A2, D3.3, D3.6-3.8 |
Parsing I | CFG, parse tree | A3.1, D4.2 |
Parsing | Top-down parsing | A3.2, D4.3-4 |
Parsing | Bottom-up parsing | A3.3, D4.5-7 |
Abstract Syntax | Semantic action, AST | A3.4, A4, D4.8-9 |
Semantic Analysis | Scope & symbol table, type checking | A5, D6.1-2, D7.6, Cardelli | Activation Record | Memory layout, stack frame, use of registers | A6, D7.2-4 |
Translating to Intermediate Code | Overview of IR, translation to IR Tree | A7, C5, D8.1 |
Basic Block and Traces | Lowering of IR Tree | A8 |
Instruction Selection | A9 | |
Liveness Analysis | A10, D10.6 | |
Register Allocation | A11, C13.3, C13.5, D9.5-6 | |
Garbage Collection | A13, C13.5 | |
Object-oriented Languages | A14 | |
Loop Optimizations | A18 |