CS3501-COMPILER DESIGN
UNIT I INTRODUCTION TO COMPILERS & LEXICAL ANALYSIS
Introduc on- Translators- Compila on and Interpreta on- Language processors -The Phases
of Compiler – Lexical Analysis – Role of Lexical Analyzer – Input Buffering – Specifica on of
Tokens– Recogni on of Tokens – Finite Automata – Regular Expressions to Automata NFA,
DFA –Minimizing DFA – Language for Specifying Lexical Analyzers – Lex tool.
UNIT II SYNTAX ANALYSIS
Role of Parser – Grammars – Context-free grammars – Wri ng a grammar Top Down Parsing
–General Strategies – Recursive Descent Parser Predic ve Parser-LL(1) – Parser-Shi Reduce
Parser-LR Parser- LR (0)Item Construc on of SLR Parsing Table – Introduc on to LALR Parser
–Error Handling and Recovery in Syntax Analyzer-YACC tool – Design of a syntax Analyzer for
a Sample Language
UNIT III SYNTAX DIRECTED TRANSLATION & INTERMEDIATE CODE GENERATION
Syntax directed Defini ons-Construc on of Syntax Tree-Bo om-up Evalua on of S-A ribute
Defini ons- Design of predic ve translator – Type Systems-Specifica on of a simple type
Checker-Equivalence of Type Expressions-Type Conversions. Intermediate Languages: Syntax
Tree, Three Address Code, Types and Declara ons, Transla on of Expressions, Type
Checking, Back patching.
UNIT IV RUN-TIME ENVIRONMENT AND CODE GENERATION
Run me Environments – source language issues – Storage organiza on – Storage Alloca on
Strategies: Sta c, Stack and Heap alloca on – Parameter Passing-Symbol Tables – Dynamic
Storage Alloca on – Issues in the Design of a code generator – Basic Blocks and Flow graphs
–Design of a simple Code Generator – Op mal Code Genera on for Expressions– Dynamic
Programming Code Genera on.
UNIT V CODE OPTIMIZATION
Principal Sources of Op miza on – Peep-hole op miza on – DAG- Op miza on of Basic
Blocks –
Global Data Flow Analysis – Efficient Data Flow Algorithm – Recent trends in Compiler Design