Back close

Course Detail

Course Name Compiler Design
Course Code 23CSE314
Program B. Tech. in Computer Science and Engineering (CSE)
Semester 6
Credits 4
Campus Amritapuri ,Coimbatore,Bengaluru, Amaravati, Chennai

Syllabus

Unit I

Overview of Compilation: Compilers and Interpreters: Definition, Objectives, Structure, Overview of Translation. Scanners. Parsers: LL, LR and LALR. Compiler Front-End Development using ANTLR.

Unit II

Context-Sensitive Analysis: Attribute Grammar, Ad Hoc Syntax Directed Translation. Intermediate Representations. Symbol Tables: Stacks, Hash Table.

Unit III

Procedure Abstraction: Access Links. Introduction to Optimization: Local Value Numbering, Super local Value Numbering. Data Flow Analysis: Iterative Data-Flow Analysis, SSA. Control Flow Analysis: Eliminating Useless and Unreachable Code.

Objectives and Outcomes

Pre-Requisite(s): 23CSEXXX Theory of Computation

Course Objectives

  • This course aims at introducing the major concepts in the areas of programming language translation and compiler construction.
  • The course emphasizes techniques that have direct application to the construction of customized compilers.
  • The course briefly covers code optimization techniques and algorithms.

Course Outcomes

CO1: Apply theoretical concepts for the analysis of program structure and identify syntax errors.

CO2: Apply theoretical concepts to associate semantic information in the program structure and translate it into

intermediate representations.

CO3: Implement language translation techniques in open-source tools.

CO4: Analyze the design of data structures for compile-time and run-time code generation.

CO5: Apply code optimization algorithms to improve the performance of the translated code.

CO-PO Mapping

 PO/PSO PO1 PO2 PO3 PO4 PO5 PO6 PO7 PO8 PO9 PO10 PO11 PO12 PSO1 PSO2
CO
CO1 2 1 2 1 2 3 2
CO2 2 3 2 2 3 2
CO3 2 3 3 3 3 3 3 2
CO4 2 3 3 3 2
CO5 2 3 3 3 2 3 2

Evaluation Pattern

Evaluation Pattern: 70:30

Assessment Internal End Semester
Midterm 20
*Continuous Assessment (Theory) (CAT) 10
*Continuous Assessment (Lab) (CAL) 40
**End Semester 30 (50 Marks; 2 hours exam)

*CAT – Can be Quizzes, Assignment, and Reports

*CAL – Can be Lab Assessments, Projects, and Reports

**End Semester can be theory examination/ lab-based examination

Text Books / References

Textbook(s)

Cooper, Keith, and Linda Torczon, “Engineering a Compiler”, Third Edition, Elsevier, 2022.

Reference(s)

Parr T. “Language implementation patterns: create your own domain-specific and general programming languages”. Pragmatic Bookshelf; First Edition, 2010.

Mak R. “Writing compilers and interpreters: a software engineering approach”. John Wiley & Sons; Third Edition, 2009.

Appel W Andrew and Jens Palesberg, “Modern Compiler Implementation in Java”, Cambridge University Press, Second Edition, 2002.

Aho, Alfred V., Monica S. Lam, Ravi Sethi, and Jeffrey Ullman, “Compilers: Principles, Techniques and Tools”, Prentice Hall, Second Edition, 2006.

DISCLAIMER: The appearance of external links on this web site does not constitute endorsement by the School of Biotechnology/Amrita Vishwa Vidyapeetham or the information, products or services contained therein. For other than authorized activities, the Amrita Vishwa Vidyapeetham does not exercise any editorial control over the information you may find at these locations. These links are provided consistent with the stated purpose of this web site.

Admissions Apply Now