Teaching Scheme (in Hours)
Theory |
Tutorial |
Practical |
Total |
4 |
0 |
2 |
6 |
Subject Credit : 6
Examination Scheme (in Marks)
Theory
ESE (E)
|
Theory
PA (M)
|
Practical
ESE Viva (V)
|
Practical
PA (I)
|
Total
|
70 |
30 |
30 |
20 |
150 |
Syllabus Content
Unit-1: Introduction
Overview of the Translation Process, A Simple Compiler, Difference between interpreter, assembler and compiler. Overview and use of linker and loader, types of Compiler, Analysis of the Source Program, The Phases of a Compiler, Cousins of the Compiler, The Grouping of Phases, Lexical Analysis, Hard Coding and Automatic Generation Lexical Analyzers, Front-end and Back-end of compiler, pass structure
Unit-2: Lexical Analyzer
Introduction to Lexical Analyzer, Input Buffering, Specification of Tokens, Recognition of Tokens, A Language for Specifying Lexical Analyzers, Finite Automata From a Regular Expression, Design of a Lexical Analyzer Generator, Optimization of DFA
Unit-3: Parsing Theory
Top Down and Bottom up Parsing Algorithms, Top-Down Parsing, Bottom-Up Parsing, Operator-Precedence Parsing, LR Parsers, Using Ambiguous Grammars, Parser Generators, Automatic Generation of Parsers. Syntax-Directed Definitions, Construction of Syntax Trees, Bottom-Up Evaluation of S-Attributed Definitions, L-Attributed Definitions, syntax directed definitions and translation schemes
Unit-4: Error Recovery
Error Detection & Recovery, Ad-Hoc and Systematic Methods
Unit-5: Intermediate Code Generation
Different Intermediate Forms, Syntax Directed Translation Mechanisms And Attributed Mechanisms And Attributed Definition.
Unit-6: Run Time Memory Management
Source Language Issues, Storage Organization, Storage-Allocation Strategies, and Access to Non local Names, Parameter Passing, Symbol Tables, and Language Facilities for Dynamic Storage Allocation, Dynamic Storage Allocation Techniques.
Unit-7: Code Optimization
Global Data Flow Analysis, A Few Selected Optimizations like Command Sub Expression Removal, Loop Invariant Code Motion, Strength Reduction etc.
Unit-8: Code Generation
Issues in the Design of a Code Generator, The Target Machine, Run-Time Storage Management, Basic Blocks and Flow Graphs, Next-Use Information, A Simple Code Generator, Register Allocation and Assignment, The DAG Representation of Basic Blocks, Peephole Optimization, Generating Code from DAGs, Dynamic Programming Code-Generation Algorithm, CodeGenerator Generators.
Reference Books
Sr. |
Title |
Author |
Publication |
Amazon Link |
1 |
Compilers: Principles, Techniques and Tools |
Aho, Lam, Sethi, and Ullman |
Pearson |
|
2 |
Compilers: Principles, Techniques and Tools |
Aho, Sethi, and Ullman |
Addison-Wesley |
|
3 |
Compiler Design in C |
Allen I. Holub |
Prentice-Hall/Pearson |
|
4 |
Advanced Compiler Design and Implementation |
Muchnick, Morgan and Kaufmann |
|
|