Venue: RM 101 (Rajeev Motvani Building, CSE Dept)
This course aims to teach various phases of Compiler Design.
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.
Important: All emails either to the instructor or the TAs should begin with subject line "[CS335]" -- without any spaces in the course code (and without quotes). Email not complying to this rule will NOT be entertained.
Section List for Enrolled Students: PDF
The course site is up on Canvas. Everyone in the class must register on Canvas.
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.
|2.||Linking||[slides]||[Slides] and [Chapter 7 of the book] by Bryant & O'Hallaron|
|3.||Overview of Compilation||[slides]||Chapter 1 and 2 of the [DragonBook]|
|4.||Lexical Analysis||[slides]||Chapter 3 of the [DragonBook]|
|5.||Syntax Analysis||[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||[slides]||Chapter 4 (4.5 - 4.9) of the [DragonBook]|
|7.||Semantic Analysis||[slides]||Chapter 5 (5.1) of the [OldDragonBook]|
|8.||Syntax Directed Translation||[slides]||Chapter 5 (5.2 - 5.6, 5.8) of the [OldDragonBook]|
|9.||Type Checking||[slides]||Chapter 6 (6.1 - 6.6) of the [OldDragonBook]|
|9.||Run-time Systems||[slides]||Chapter 7 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.
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.
The course will mainly cover topics from the following list (not necessarily in the same order).
|Mid semester exam||20%|
|End semester exam||35%|
Last Modified at : Wed Mar 8 15:34:34 IST 2017