|
|
Topics | Readings |
|
|
Overview of syntax-directed translation | Chapter 1 |
|
|
Case study of a simple compile | Chapter 2 |
|
|
Regular expressions and lexical analysis | 3.1-3.3 |
|
|
Implementing lexical analyzers | 3.5-3.6 |
|
|
Parsing fundamentals | Chapter 4 |
|
|
||
|
|
||
|
|
||
|
|
||
|
|
Symbol Tables | Chapter 8 |
|
|
EXAM 1 | |
|
|
Declaration procesing fundamentals | 9.1-9.2 |
|
|
More on handling declarations;
Walking an AST using an ANTLR tree parser |
Lecture slides |
|
|
Type checking expressions and control structures | 9.3; Lecture slides |
|
|
Basic blocks; simple AST optimizations | Lecture slides |
|
|
Program representation and interpretation
techniques;
Data areas and run-time storage management |
Chapter 11 |
|
|
NO CLASS - FALL BREAK | |
|
|
More storage management: stacks, heaps, garbage collection | |
|
|
Simple code generation | Chapter 12 |
|
|
More on code generation | 13.1.1-13.1.3 |
|
|
Semantic analysis and code generation
for simple procedures, paramaters
and recursion |
|
|
|
Semantic analysis and code generation for records and arrays | |
|
|
More on recoords and arrays | |
|
|
EXAM 2 | |
|
|
Semantic analysis and code generation for packages; handling classes | Lecture slides |
|
|
Optimization | Chapter 16a |
|
|
Optimization | in-class handout |
|
|
NO CLASS - THANKSGIVING | |
|
|
Optimization | in-class handout |
|
|
Shift-reduce parsing; definition of LR(0) parsers | Chapter 6 |
|
|
LR(1) parsing; SLR(1) and LALR(1) space optimizations | |
|
|
Using an LR-based parser genrator (yacc) to parse and generate ASTs |