CS3423: Compilers-II and CS6240: Advanced Compiler Design
August 2017 - Nov 2017
Instructor: Ramakrishna Upadrasta (U. Ramakrishna)
Email: Ramakrishna AT iith DOT ac DOT in
TAs (IITH email-IDs: <ID> AT iith DOT ac DOT in) : SHALINI JAIN (cs15resch11010), Utpal Bora (cs14mtech11017), Venkata Keerthy S (cs17mtech11018), RAHUL UTKOOR (cs14btech11037/CS14B18M000001)
Discussion Google-group: compilers2-aug18 AT iith DOT ac DOT in
Join Group (only with IITH email-IDs)
Classes: Mon: 11:00am-12:00noon, Wed: 10:00am-10:30am, Thu: 9:00am-10:00am (C slot); Room: CL#119
Credits: CS3320: 1 credit, CS3423: 3 credits; CS6240: 3 credits
Prerequisites: CS3320:CS3423 3rd year B.Techs; Prerequisite: CS3320 is compulsory. CS6240: M.Techs and PhDs (Primarily 1st years: exceptions allowed. Please get a permission from me.)
Course Description (CS3320+CS3423 and CS6240)
The objective of these courses is to learn basic principles and advanced techniques of compiler design. Both the courses will focus lexical analysis, syntactic analysis, semantic analysis, abstract syntax tree and code-generation as well as basic optimizations.
The initial part of both the courses will focus on the classic techniques of lexical analysis and scanning/screening, syntactic analysis like bottom-up and top-down parsing techniques, semantic analysis, type-checking, abstract syntax tree and code generation. The latter part will focus on intermediate representations and simple
optimizations like register allocation and instruction scheduling.
A significant focus of these courses would be on designing and implementing parts of compiler for a subset of C++/Java. The language of
implementation would be in C/C++/Java languages. There would also be effort to study modern compilers like LLVM in the form of mini-assignments.
Course Description (CS6240)
This is a sister course to CS3320+CS3423 being offered to B.Techs. This beginning level M.Tech/PhD course would have additional project
work, a paper presentation, and some research component.
||Organization & Logistics,
An Overview of Compilers PDF
Readings: ALSU, Ch.1
|Rest of Lectures
In Google Drive.
[Text Book] Compilers: Principles, Techniques, and Tools ("Dragon book") by Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman, 2006
[Ref. Book] Compiler Design "Syntactic and Semantic Analysis" by Reinhard Wilhelm, Helmut Seidl and Sebastian Hack, 2013
[Adv. Ref. Book] Advanced Compiler Design and Implementation by Steven Muchnick, 1997
[NPTEL] NPTEL course on Principles of Compiler Design by Prof. Y.N. Srikant from Indian Institute of Science, 2012-2014
[Coursera] Coursera course on Compilers by Prof. Alex Aiken at Stanford, 2012-2014 Coursera Compilers
[Gradiance] Gradiance System by Prof. Jeffrey D. Ullman newgradiance link
Some Class Links:
Grading (CS3423: 3 credits)
| Activity || Weight |
|Class Participation ||10%
|Mini Prog. Assignments (LLVM) (2) ||10%
|Programming Exam ||25%
|End Term Exam ||25%
Grading (CS6240) (New)
| Activity || Weight |
|Mid Term Exam ||15%
|End Term Exam ||20%
|Project + BackEnd ||20%+10%=30%
|Mini Prog. Assignments (LLVM) ||10%
|Programming Exam ||10%
|Paper Presentation + Writeup ||10+5=15%
Important: Plagiarism Policy of IITH-CSE Department.