BIT052

Compiler Design

L-T-P3-0-0 Credits3 Session2024-25 TypeTheory
Appears in 1 semester

B.Tech Information Technology · Sem 5 (Departmental Elective-I)

Syllabus

5 units · 40 lecture hours
Unit1

Unit 1: Introduction to Compiler

8 hrs

Phases and passes, Bootstrapping, Finite state machines and regular expressions and their applications to lexical analysis, Optimization of DFA-Based Pattern Matchers implementation of lexical analyzers, lexical-analyzer generator, LEX compiler, Formal grammars and their application to syntax analysis, BNF notation, ambiguity, YACC. The syntactic specification of programming languages: Context free grammars, derivation and parse trees, capabilities of CFG.

Unit2

Unit 2: Basic Parsing Techniques

8 hrs

Parsers, Shift reduce parsing, operator precedence parsing, top down parsing, predictive parsers Automatic Construction of efficient Parsers: LR parsers, the canonical Collection of LR(0) items, constructing SLR parsing tables, constructing Canonical LR parsing tables, Constructing LALR parsing tables, using ambiguous grammars, an automatic parser generator, implementation of LR parsing tables.

Unit3

Unit 3: Syntax-directed Translation

8 hrs

Syntax-directed Translation schemes, Implementation of Syntax directed Translators, Intermediate code, postfix notation, Parse trees & syntax trees, three address code, quadruple & triples, translation of assignment statements, Boolean expressions, statements that alter the flow of control, postfix translation, translation with a top down parser. More about translation: Array references in arithmetic expressions, procedures call, declarations and case statements.

Unit4

Unit 4: Symbol Tables

8 hrs

Data structure for symbols tables, representing scope information. Run-Time Administration: Implementation of simple stack allocation scheme, storage allocation in block structured language. Error Detection & Recovery: Lexical Phase errors, syntactic phase errors semantic errors.

Unit5

Unit 5: Code Generation

8 hrs

Design Issues, the Target Language. Addresses in the Target Code, Basic Blocks and Flow Graphs, Optimization of Basic Blocks, Code Generator. Code optimization: Machine-Independent Optimizations, Loop optimization, DAG representation of basic blocks, value numbers and algebraic laws, Global Data-Flow analysis.

Course Outcomes (COs)5 outcomes

After completion of the course student will be able to:

  1. CO1Acquire knowledge of different phases and passes of the compiler and also able to use the compiler tools like LEX, YACC, etc. Students will also be able to design different types of compiler tools to meet the requirements of the realistic constraints of compilers.K3, K6
  2. CO2Understand the parser and its types i.e. Top-Down and Bottom-up parsers and construction of LL, SLR, CLR, and LALR parsing table.K2, K6
  3. CO3Implement the compiler using syntax-directed translation method and get knowledge about the synthesized and inherited attributes.K4, K5
  4. CO4Acquire knowledge about run time data structure like symbol table organization and different techniques used in that.K2, K3
  5. CO5Understand the target machine’s run time environment, its instruction set for code generation and techniques used for code optimization.K2, K4

Text books

  1. K. Muneeswaran,Compiler Design,First Edition,Oxford University Press. 2, J.P. Bennet, “Introduction to Compiler Techniques”, Second Edition, Tata McGraw-Hill,2003.
  2. Henk Alblas and Albert Nymeyer, “Practice and Principles of Compiler Building with C”, PHI, 2001.
  3. Aho, Sethi & Ullman, "Compilers: Principles, Techniques and Tools”, Pearson Education
  4. V Raghvan, “ Principles of Compiler Design”, TMH
  5. Kenneth Louden,” Compiler Construction”, Cengage Learning.
  6. Charles Fischer and Ricard LeBlanc,” Crafting a Compiler with C”, Pearson Education

Official AKTU syllabus

This subject is on page 10 of the original AKTU PDF.

Official AKTU syllabus PDF ↗