CS335 Compiler Design (2016-17 IInd Semester)

This course aims to teach various phases of Compiler Design.

Code of Ethics

Any report/program/assignment you submit must clearly distinguish your contribution from others (webpages, softwares, report, discussions with other students). The penalty for copying in any form will be severe.


Topics Covered and Slides

The slides are not suitable for taking prints as there is a lot of redundancy due to overlays. Print only the pages that you really require.

Note that [DragonBook] refers to Compilers: Principles, Techniques, and Tools, Second edition, 2006. by Alfred V. Aho , Monica S. Lam , Ravi Sethi , Jeffrey D. Ullman. Almost all the content we cover in the class is also available in the older edition of the book [OldDragonBook], but the chapters/sections could be different.

# Description (# of Lectures) Slides References
1. Introduction (1) [slides]
2. Linking (2) [slides] [Slides] and [Chapter 7 of the book] by Bryant & O'Hallaron
3. Overview of Compilation (2) [slides] Chapter 1 and 2 of the [DragonBook]
4. Lexical Analysis (2) [slides] Chapter 3 of the [DragonBook]
5. Syntax Analysis (1.5) [slides] Chapter 4 (4.1 - 4.3) of the [DragonBook]
R. Top Down Parsing (Self Study) [slides] Chapter 4 (4.4) of the [DragonBook]
6. Bottom Up Parsing (4.5) [slides] Chapter 4 (4.5 - 4.9) of the [DragonBook]
7. Semantic Analysis (1.5) [slides] Chapter 5 (5.1) of the [OldDragonBook]
8. Syntax Directed Translation (3.5) [slides] Chapter 5 (5.2 - 5.6, 5.8) of the [OldDragonBook]
9. Type Checking (2) [slides] Chapter 6 (6.1 - 6.6) of the [OldDragonBook]
10. Run-time Systems (6) [slides] Chapter 7 (7.1 - 7.5) of the [OldDragonBook]
11. IR and Symbol Table (2) [slides] Sections 7.6 & 8.1 of the [OldDragonBook]
12. Intermediate Code Generation (4) [slides] Chapter 8 of the [OldDragonBook]
13. Code Generation (1.5) [slides] Chapter 9 of the [OldDragonBook]
14. Code Gen: Sethi Ullman (1.5) [slides] Section 9.10 of the [OldDragonBook]
15. Code Gen: Aho Johnson (3) [slides] Section 9.10 of the [OldDragonBook]


There will be short assignments to give you a chance to apply the lecture material. Assignments will have some written and some programming tasks.

Course Project

The course project gives you a chance to apply the concepts learnt in the class to build a prototype compiler. You will be required to implement various phases of a compiler, and perform an experimental evaluation of your implementation.

Important: Use of git version control system on bitbucket is required for the project.

Course Outline

The course will mainly cover topics from the following list (not necessarily in the same order).

Evaluation Scheme


Assignments/Quizzes 10%
Mid semester exam 20%
End semester exam 35%
Course Project 35%

Supporting Material

Take me to the Top

powered by Pandoc

Last Modified at : Wed May 17 10:57:36 IST 2017