UNIT – I
Introduction: Compilers, The translation process, Data structures and issues in compiler structure,
Bootstrapping and Porting.
Scanning: The scanning process, Regular expressions, Finite Automata, Regular expressions to DFA‘s, use
of LEX to generate scanner.
UNIT – II
Context Free Grammars & Parsing: The parsing process, Context free grammars, Parse tree &Abstract
syntax trees, EBNF and syntax diagrams, and Properties of CFLs.
Top Down Parsing: Recursive descent parsing, LL (1) parsing, First and follow sets, Recursive descent
parser, and Error recovery in top down parsers.
UNIT – III
Bottom-up Parsing: Overview, LR (0) items and LR (0) Parsing, SLR (1) Parsing, general LR (1) and
LALR (1) parsing, YACC, and Error recovery in bottom-up parsers.
UNIT – IV
Semantic Analysis: Attributes and attribute grammars, Algorithms for attribute computation, Symbol table,
Data types and Type checking.
Runtime Environments: Memory organization during program execution, fully static runtime
environments, Stack-based runtime environments, Dynamic memory, and Parameter parsing mechanisms.
UNIT – V
Code Generation: Intermediate code and data structures for code generation, Basic code generation
techniques, Code generation of data structure references, Code generation of control statements and logical
expressions, Code generation of procedure and function calls, Code generation in commercial compilers,
Code optimization techniques and Data flow equation.
Suggested Readings:
1. Kenneth C. Louden, Compiler Construction: Principles and Practice, Thomson Learning Inc., 1997.
2. Ravi Sethi, Aho & Ullman JP, Compilers: Principles, Techniques and Tools, Addison Wesley
publishing co., 1986.
3. J.P. Tremblay and P.S. Sorenson, The Theory and Practice of Compiler Writing, TMH-1985.