CSI 411 - Compiler

Course Objective:

Compiler Design is a course that introduces students to some basics in the design and implementation of compilers. The objective of this course is to provide the students with an understanding of the fundamental principles in compiler design and techniques.

Course Rationale:

This course aims to introduce students towards the process of compiling a high-level language to assembly language. From this course, the students get an idea about building a compiler from scratch and basic design issues.

Learning Outcomes:

After completion of the course, students are expected to be able to:

  1. Gather ideas of how compiler works and identify issues while designing a compiler.

  2. Design and develop the back end and front end of a compiler as per requirements.

  3. Experience the application level of a compiler in the full phase of transformation of high-level code to machine code.

  4. Understand various phases of development of modules and their correlation in software and programming languages.

  5. Understand the role of optimization in building a compiler and its consequences, and, use this idea in designing user and environment friendly tools.

Textbook:

  1. Compiler: Principles, Techniques and Tools By Alfred V. Aho, Monica S. Lam, Ravi Sethi and Jeffrey D. Ullman (2 nd Edition) Published by Addison Waesley Longman Inc.

  2. Principles of Compiler Design, By Alfred Aho & Jeffrey D. Ullman, published by N.k Mehra for Narosa Publishing House.


Course Materials:


The resources are arranged in week wise format of the academic calendar as follows: