Page 54 - B.Tech IT Curriculum and Syllabus R2017 - REC
P. 54

Department of IT, REC


                                                     SEMESTER V
               IT17501               AUTOMATA THEORY AND COMPILER DESIGN         L T P C
                                                                                                   3  2  0  4

               OBJECTIVES:
                     Learn the design principles of a Compiler.
                     Familiar with the basics of theory of automata.
                     Understand the various parsing techniques and different levels of translation.
                     Learn different techniques to optimize the code.
                     Implement target machine code generation.

               UNIT 1 INTRODUCTION TO COMPILER AND FORMAL LANGUAGES                                   15
               Translators  -  Compilation  and  Interpretation  -  Language  processors  -  The  Phases  of  Compiler  –
               Symbol table – Error Handling - Regular Languages – Finite Automata – Non determinism – Regular
               Expressions – Regular Expressions to DFA – Minimization of DFA – Lex Tool.
               (Ref. Book 1: Chapter 1) & (Ref. Book 2: Chapter 1)

               UNIT II        CONTEXT FREE GRAMMARS AND PARSING                                       15
               Context Free Grammars  – derivation - parse tree -  Top Down Parsing  - Recursive Descent Parser
               Predictive Parser-LL(1) Parser – Bottom up parsing - Shift Reduce Parser – LR parser – SLR – CLR –
               LALR – YACC Specification.
               (Ref. Book 1: Chapter 4)

               UNIT III       SEMANTICS AND RUN TIME ENVIRONMENT                                      10
               Syntax directed translation – S-attributed and L-attributed grammars - applications of SDT - Storage
               organization and storage allocation strategies.
               (Ref. Book 1: Chapter 5 & 7)

               UNIT IV        CODE OPTIMIZATION                                                       10
               Three  address  code  implementation  -  Principal  Sources  of  Optimization  -  Optimization  of  Basic
               Blocks – Peephole Optimization – Flow Graphs - Data Flow Analysis of Flow Graphs.
               (Ref. Book 1: Chapter 6, 8 & 9)

               UNIT V         CODE GENERATION                                                         10
               Machine  dependent  code  generation  –  generic  code  generation  algorithm  –  register  allocation  and
               assignment – DAG representation of basic block.
               (Ref. Book 1: Chapter 8)                                         TOTAL: 60 PERIODS

               OUTCOMES:
               At the end of the course, the student should be able to:
                   1.  Apply the basics of automata theory in the design of a compiler.
                   2.  Use various parsing techniques for parsing an input.
                   3.  Design and implement a prototype compiler.
                   4.  Apply the various optimization techniques.
                   5.  Use the different compiler construction tools.

               REFERENCES:
                   1.  Alfred V Aho, Monica S. Lam, Ravi Sethi and Jeffrey D Ullman, ―Compilers – Principles,
                       Techniques and Tools‖, 2nd Edition, Pearson Education, 2007.
                   2.  Michael Sipser. Introduction to the Theory of Computation, PWS Publishing Company.
                   3.  Randy  Allen,  Ken  Kennedy,  ―Optimizing  Compilers  for  Modern  Architectures:  A
                       Dependence-based Approach‖, Morgan Kaufmann Publishers, 2002.



               Curriculum and Syllabus | B.Tech. Information Technology | R2017                Page 54
   49   50   51   52   53   54   55   56   57   58   59