6th Semester
6th Semester
6th Semester
Syllabus:
Course Code Course Name L T P C Year Semester
CS304 Compiler Design 3 0 0 3 3rd 6th
Course Objective: This course allows one to understand the process involved in a compiler, create an
overall view of various types of translators, linkers, loaders, and phases of a compiler. This course
further ensures that students get to know about syntax analysis, various types of parsers especially the
top down approach. Creating awareness among students about various types of bottom up parsers is
also a part of the course. Apart from this, various other topics such as intermediate code generation,
type checking, the role of symbol table and its organization, code generation, machine independent
code optimization and instruction scheduling included in the course. It allows one to better understand
language translation.
Topic Hour
Overview of Different Phases of a Compiler: Overview of The
Translation Process of a Source Program, A Simple Compiler, Types
of Compiler, Analysis of The Source Program, The Phases of a
Compiler, Cousins of The Compiler, The Grouping of Phases, Front-
Module I 6
End and Back-End of Compiler, Pass Structure, Compiler
Construction Tools. A Simple One-Pass Compiler: Overview on
Syntax definition, Syntax Directed Translation, Parsing, Symbol
Tables.
Lexical Analysis: The Role of a Lexical Analyser, Input Buffering,
Module II Specification of Tokens, Recognition of Tokens, The Lexical-Analyser 7
Generator E.G., Lex. Review On Finite Automata, Design of a Lexical
Analyser Generator, And Optimization of DFA-Based Pattern
Matches.
Syntax Analysis and Syntax-Directed Translation: The Role of a
Parser, Context Free Grammars, Top Down and Bottom Up Parsing
Techniques, Construction of Efficient Parsers.
Module III 8
Syntax-Directed Definitions, Construction of Syntax Trees, Bottom-
Up Evaluation of S-Attributed Definitions, L-Attributed Definitions,
And Translation Schemes.
Semantic Analysis and Intermediate Code Generation: Declaration
Processing, Type Checking, Symbol Tables, Error Recovery, Run-Time
Environments, and Ad-Hoc and Systematic Methods. Variants of
Module IV 6
Syntax Trees, Different Intermediate Forms, Types and Declarations,
Control Flow, Back-patching, Switch-Statements, and Intermediate
Code for Procedures.
Code Optimization and Code Generation: Global Data Flow Analysis,
A Few Selected Optimizations like Command Sub Expression
Removal, Loop Invariant Code Motion, and Strength Reduction,
Issues In The Design Of A Code Generator, The Target Machine, Run-
Module V Time Storage Management, Basic Blocks and Flow Graphs, Next-Use 8
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, Code-Generator Generators.
Total 35
1. Compilers: Principles, Techniques, and Tools ; A V Aho, L S Monica, R Sethi, J D
Ullman ; 2nd Edition, Prentice Hall; 2014.
Text 2. Engineering a Compiler ; K D Cooper, L Torczon; Morgan Kaufmann Publishers;
2004.
Elective-I
List of choices
Course code Course Name Area of Specialization
CS351 Introduction to Cryptography [Network & Security]
CS352 Data Compression and Protection [Network & Security]
CS353 Advanced Computer Architecture [Hardware & Systems]
CS354 Distributed Operating System [Hardware & Systems]
CS355 Formal Methods & Verification [Theory & Machine intelligence]
CS356 Introduction to Data Mining [Theory & Machine intelligence]
Reference 1. Culler, David E. Singh, Jaswinder Pal. Gupta, Anoop, Parallel Computer
Architecture: A Hardware/Software Approach, 1st Edition, Morgan
Kaufmann, 2003.
2. Kai Hwang and Naresh Jotwani, Advanced Computer Architecture, 3rd ed.,
Tata Mcgraw Hill, 2010.
Text Books 1. Michael Huth and Mark Ryan, Logic in Computer Science: Modelling and Reasoning
about Systems, Cambridge University Press, 2018.
2. Monin-Jean Francois, Understanding Formal Methods, Springer-Verlag, 2003.
Reference 1. Christopher A. Rouff, Michael Hinchey, James Rash, Walter Truszkowski, and
Books Diana Gordon-Spears, Agent Technology from a Formal Perspective, Springer-
Verlog, 2006.
2. Jean-Louis Boulanger, Formal Methods, Wiley, 2012.
3. Kenneth Rosen, Discrete Mathematics and Its Applications, Mc-Graw Hill, 2017.
C Liu and D. Mohapatra, Elements of Discrete Mathematics: A Computer Oriented
Approach, Mc-Graw Hill, 2017
Text Books 1. Jiawei Han, Micheline Kamber, "Data Mining: Concepts and
Techniques", Morgan Kaufmann Publishers, 2011.
2. Dunham, Margaret H. Data mining: Introductory and advanced topics.
Pearson Education India, 2006.
Reference 1. Pujari, Arun K. Data mining techniques. Universities press, 2001.
Books 2. Squire, Megan. Mastering Data Mining with Python–Find patterns
hidden in your data. Packt Publishing Ltd, 2016.