(As laid down by Uttar Pradesh Technical University, Lucknow)
Introduction to Compiler: Phases and passes, Bootstrapping, Finite state machines and regular
expressions and their applications to lexical analysis, Implementation of lexical analyzers, lexicalanalyzer generator, LEX-compiler, Formal grammars and their application to syntax analysis,
BNF notation, ambiguity, YACC.
The syntactic specification of programming languages: Context free grammars, derivation
and parse trees, capabilities of CFG.
Basic Parsing Techniques: Parsers, Shift reduce parsing, operator precedence parsing, top
down parsing, predictive parsers
Automatic Construction of efficient Parsers: LR parsers, the canonical Collection of LR (O)
items, constructing SLR parsing tables, constructing Canonical LR parsing tables, Constructing
LALR parsing tables, using ambiguous grammars, an automatic parser generator, implementation
of LR parsing tables, constructing LALR sets of items.
Syntax-directed Translation: Syntax-directed Translation schemes, Implementation of Syntaxdirected Translators, Intermediate code, postfix notation, Parse trees & syntax trees, three
address code, quadruple & triples, translation of assignment statements, Boolean expressions,
statements that alter the flow of control, postfix translation, translation with a top down parser.
More about translation: Array references in arithmetic expressions, procedures call,
declarations, case statements.
Symbol Tables: Data structure for symbols tables, representing scope information.
Run-Time Administration: Implementation of simple stack allocation scheme, storage allocation
in block structured language.
Error Detection & Recovery: Lexical Phase errors, syntactic phase errors semantic errors.
Introduction to code optimization: Loop optimization, the DAG representation of basic blocks,
value numbers and algebraic laws, Global Data-Flow analysis.
Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman,
“Compilers: Principles, Techniques, and Tools”
TCS-502 COMPILER DESIGN Course File