Syllabus

CS 536, Fall 2004

Tentative Schedule of Topics and Suggested Reading

Please note that the schedule is subject to revision and modification as the semester proceeds.

 

Week of Topic(s) Notes* Reading**
August 30 Introduction to course, course policies    
September 6 Introduction to compilers
Scanners, FSMs
Compiler Overview
The Scanner
Chapter 1
Chapter 2
September 13 FSMs, non-deterministic FSMs
Regular expressions
   
September 20 Scanners, JLex
Parsing, Context-Free Grammars
JLex
Context-Free Grammars
 
Chapter 3
September 27 CFGs, Predictive parsing, LL(1) grammars Parsing  
October 4 LL(1) grammars, Syntax-directed translation, ASTs, Syntax-Directed Translation  
October 11 ASTs, Java Cup Java Cup  
October 18 Symbol tables Symbol Tables and Static Checks Chapter 4, 5.7
October 25 Type checking
Runtime environments

Runtime Environments

Chapter 6
November 1 Runtime access to locals, globals, non-locals Runtime Access to Variables  
November 8 Runtime access to locals, globals, non-locals    
November 15 Parameter passing Parameter Passing  
November 22 Code generation Code Generation Chapter 7
November 29 Code generation    
December 6 Code generation
Optimization

Optimization
 
December 13 Optimization
Review
   


* Notes are a set of on-line notes for the class written by Professor Susan Horwitz.
** Readings are from the recommended text by Keith Cooper and Linda Torczon, Engineering a Compiler, published by Morgan Kaufmann, 2004