Class Date
Topics Readings
Aug 24
 Overview of syntax-directed translation  Chapter 1
Aug 26
 Case study of a simple compile  Chapter 2
Aug 29
 Regular expressions and lexical analysis  3.1-3.3
Sep 2
Implementing lexical analyzers 3.5-3.6
Sep 7
 Parsing fundamentals Chapter 4
Sep 9
   
Sep 14
   
Sep 16
   
Sep 21
   
Sep 23
Symbol Tables Chapter 8
Sep 28
 EXAM 1  
Sep 30
 Declaration procesing fundamentals  9.1-9.2
Oct 5
 More on handling declarations; 

Walking an AST using an ANTLR tree parser

Lecture slides

Oct 7
 Type checking expressions and control structures 9.3; Lecture slides
Oct 12
 Basic blocks; simple AST optimizations Lecture slides
Oct 14
 Program representation and interpretation techniques; 

 Data areas and run-time storage management

 Chapter 11

Oct 19
 NO CLASS - FALL BREAK  
Oct 21
 More storage management: stacks, heaps, garbage collection  
Oct 26
 Simple code generation  Chapter 12
Oct 28
More on code generation  13.1.1-13.1.3
Nov 2
 Semantic analysis and code generation for simple procedures, paramaters 

and recursion

 
Nov 4
 Semantic analysis and code generation for records and arrays  
Nov 9
 More on recoords and arrays  
Nov 11
 EXAM 2  
Nov 16
 Semantic analysis and code generation for packages; handling classes  Lecture slides
Nov 18
 Optimization  Chapter 16a
Nov 23
 Optimization  in-class handout
Nov 25
 NO CLASS - THANKSGIVING  
Nov 30
Optimization  in-class handout
Dec 2
 Shift-reduce parsing; definition of LR(0) parsers  Chapter 6
Dec 7
 LR(1) parsing; SLR(1) and LALR(1) space optimizations  
Dec 9
 Using an LR-based parser genrator (yacc) to parse and generate ASTs