Compiler Design

Paper Code: 
MCA 524F
Credits: 
04
Periods/week: 
04
Max. Marks: 
100.00
Objective: 

•    To understand, design and implement a lexical analyzer.
•    To understand, design and implement a parser.
•    To understand, design code generation schemes.
•    To understand optimization of codes and runtime environment

12.00
Unit I: 

INTRODUCTION TO COMPILING                   
Compilers – Analysis of the source program – Phases of a compiler – Cousins of the Compiler – Grouping of Phases – Compiler construction tools - Lexical Analysis -Role of Lexical Analyzer – Input Buffering – Specification of Tokens.

 

12.00
Unit II: 

SYNTAX ANALYSIS                                                 
Role of the parser –Writing Grammars –Context-Free Grammars – Top Down parsing - Recursive Descent Parsing - Predictive Parsing – Bottom-up parsing - Shift Reduce Parsing – Operator Precedent Parsing - LR Parsers - SLR Parser - Canonical LR Parser - LALR Parser.

 

10.00
Unit III: 

INTERMEDIATE CODE GENERATION                
Intermediate languages – Declarations – Assignment Statements – Boolean Expressions – Case Statements – Back patching – Procedure calls

 

13.00
Unit IV: 

CODE GENERATION                               
Issues in the design of code generator – The target machine – Runtime Storage management – Basic Blocks and Flow Graphs – Next-use Information – A simple Code generator – DAG representation of Basic Blocks – Peephole Optimization.

13.00
Unit V: 

CODE OPTIMIZATION AND RUN TIME ENVIRONMENTS       
Introduction– Principal Sources of Optimization – Optimization of basic Blocks – Introduction to Global Data Flow Analysis – Runtime Environments – Source Language issues – Storage Organization – Storage Allocation strategies – Access to non-local names – Parameter Passing. 

 

ESSENTIAL READINGS: 
  • Alfred Aho, Ravi Sethi, Jeffrey D Ullman, “Compilers Principles, Techniques and Tools”, Pearson Education Asia, 2003.
  • Henk Alblas and Albert Nymeyer, “Practice and Principles of Compiler Building with C”, PHI, 2001.
  • Kenneth C. Louden, “Compiler Construction: Principles and Practice”, Thompson Learning, 2003vs

 

REFERENCES: 

·         Allen I. Holub “Compiler Design in C”, Prentice Hall of India, 2003.

 C. N. Fischer and R. J. LeBlanc, “Crafting a compiler with C”, Benjamin Cummings, 2003.

Academic Year: