Compiler Design Handwritten Notes
At the end of course , the student will be able to:
CO 1 Acquire knowledge of different phases and passes of the compiler and also able to use the
compiler tools like LEX, YACC, etc. Students will also be able to design different types of
compiler tools to meet the requirements of the realistic constraints of compilers.
CO 2 Understand the parser and its types i.e. Top-Down and Bottom-up parsers and construction of
LL, SLR, CLR, and LALR parsing table.
CO 3 Implement the compiler using syntax-directed translation method and get knowledge about the
synthesized and inherited attributes.
CO 4 Acquire knowledge about run time data structure like symbol table organization and different
techniques used in that.
Understand the target machine’s run time environment, its instruction set for code generation
and techniques used for code optimization.
Unit-1: Introduction to Compiler: Phases and passes, Bootstrapping, Finite state machines and regular
expressions and their applications to lexical analysis, Optimization of DFA-Based Pattern Matchers
implementation of lexical analyzers, lexical-analyzer 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.
Unit-II 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(0) 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.
Unit-III 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 and case
Unit-IV 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
Unit-V Code Generation: Design Issues, the Target Language. Addresses in the Target Code, Basic
Blocks and Flow Graphs, Optimization of Basic Blocks, Code Generator. Code optimization:
Machine-Independent Optimizations, Loop optimization, DAG representation of basic blocks,
value numbers and algebraic laws, Global Data-Flow analysis.