Teaching Scheme (in Hours)
Subject Credit : 6
Examination Scheme (in marks)
ESE Viva (V)
Syllabus Content Download
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.
|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|
Darshan Institute of Engineering & Technology is a leading institute offering undergraduate (B.E.), postgraduate (M.E.) and Diploma programs in engineering.