Primary course 
CS 540 (Language Processing) 

Primary textbook 
A. V. Aho, M. S. Lam, R. Sethi, J. D. Ullman, Compilers: Principles, Techniques and Tools, 2nd ed., Addison-Wesley, 2006. 

Alternative textbook 
A. V. Aho, R. Sethi, J. D. Ullman, Compilers: Principles, Techniques and Tools, Addison-Wesley, 1986. 

Alternative textbook 
K. D. Cooper and L. Torczon, Engineering a Compiler, Morgan Kaufmann, 2004. 

Alternative textbook 
A. Appel, Modern Compiler Implementation in C, Cambridge University Press, 1998. Benjamin/Cummings, 1991. 

Topic  Description  Readings (Aho, Lam, Sethi, and Ullman) 
Lexical Analysis  Function of lexical analysis, token specification,token recognition  Ch. 3 (omit 3.9) 
Syntax Analysis  Context free language specification, FIRST and FOLLOW set generation, Top-down parsing (recursive, table driven) algorithms and table generation, Bottom-up parsing algorithms and SLR table generation  Ch. 2.4, Ch. 4 
Syntax Directed Translation and Attribute Grammars  Synthesized and inherited attributes, Writing attribute grammars, Synthesized attribute eval. for LR parsing  Ch. 2.3, Ch. 5.1-5.3 
Types  Type systems, Type evaluation, Polymorphism, Type inference  Ch. 6.3, 6.5 
RT Environments  Static and Stack Storage allocation, Runtime addressing, Parameter passing, Garbage collection  Ch. 7 
Intermediate Code  Types of intermediate languages expression, Control flow, Array addressing  Ch. 6 
Code Generation and Optimization  Control flow graphs, DAG representations, Register allocation, Basic optimizations, Iterative data-flow analysis, Loops  Ch. 8.1, 8.4-8.8, Ch. 9.1, 9.2, 9.6