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

