Introduction to Compiler – The structure of a compiler- Compiler- Lexical Analysis – Role of the lexical analysis – Input Buffering – Specification of tokens- Recognition of tokens – Lexical analyzer generator
Finite Automata – Regular Expression to an NFA – Optimization of DFA based pattern matchers- The Role of the Parser – Context-Free Grammars – Writing a Grammar -Top-Down Parsing – Recursive Descent Parsing – Predictive Parsing – Bottom-Up Parsing – Shift Reduce Parsing – Operator-Precedence Parsing
Introduction to LR parsing – SLR Parser – Canonical LR Parser – LALR Parser Generators – Intermediate Languages – Declarations – Control Flow -Boolean Expressions –Switch Statements – Back patching .
INTERMEDIATE CODE GENERATION
Issues in the Design of a Code Generator – The Target Language – Addresses in the target code – Basic Blocks and Flow Graphs – A Simple Code Generator – DAG Representation of Basic Blocks
CODE OPTIMIZATION AND RUN TIME ENVIRONMENTS
The Principal Sources of Optimization – Optimization of Basic Blocks – Peephole optimization- Loops in Flow Graphs –Runtime environments –Storage organizations-stack allocation of space – Access to nonlocal data on the stack
- " Compilers principles, techniques and tools", Alfred Aho, Ravi Sethi, V.Jeffery Ullman D/ Pearson Education/ 2006
- Allen I. Holub, Compiler Design in C, Prentice Hall of India, 2003
- Bennet J.P., Introduction to Compiler Techniques, Tata McGraw-Hill, 2nd Edition, 2003
- Henk Alblas and Albert Nymeyer,, Practice and Principles of Compiler Building with C, PHI, 2001.