Compiler Design
Course Objectives
Compilers translate programs written by humans in high-level languages to programs which can be executed by machines. They are very important, heavily used and at the same time one of the most complex pieces of software. A whole range of techniques and ideas from Automata Theory, Algorithm Design, Computer Organization and Architecture, etc. are cleverly applied to create a compiler. In this course, students will learn in depth the various phases involved in the compilation process. The course will also involve implementing an actual compiler for a subset of the Java language.
Goal of the course: At the end of the course, students will have a fair understanding of some standard passes in a general purpose compiler. Students will have hands on experience on implementing a compiler for a subset of Java.
Essential Details
- Instructor: KC Sivaramakrishnan, who goes by “KC”.
- Where: CS34 CS Building
- When:
- Lectures: B Slot: M 09:00 to 09:50, Tu 08:00 to 08:50, W 13:00 to 13:50, F 11:00 to 11:50.
- Lab: Q slot: Tu 14:00 to 16:45.
- Slack: http://cs3300m22iitm.slack.com/. Join using
<your_email_id>@smail.iitm.ac.in
. - Moodle: https://coursesnew.iitm.ac.in/course/view.php?id=306
- TAs:
Name | Lead TA for Assignment | |
---|---|---|
Sheera Shamsu | CS20D001@smail.iitm.ac.in | 2 |
Vimala S | CS19D750@smail.iitm.ac.in | 3 |
Pankaj Singh Rawat | CS22M062@smail.iitm.ac.in | 4 |
Sarthak Naithani | CS22M078@smail.iitm.ac.in | 4 |
Ashok Rajeev | CS22M023@smail.iitm.ac.in | 4 |
Bhavesh Surendra Singh | CS22M030@smail.iitm.ac.in | 5 |
Jyothishmathi C V | CS22M049@smail.iitm.ac.in | 5 |
Textbooks
Primarily,
- Compilers: Principles, Techniques, and Tools, Alfred Aho, Monica Lam, Ravi Sethi, Jeffrey D. Ullman. Addison-Wesley, 2007 [The Dragon Book].
Reference,
- Modern compiler implementation in Java, Second Edition, Andrew W. Appel, Jens Palsberg. Cambridge University Press, 2002.
Grading
Item | Weightage (%) |
---|---|
Assignments | 40% |
Quiz1 | 15% |
Quiz2 | 15% |
EndSem | 30% |
Extra: Class Participation | Upto 5% |
Acknowledgements
The course builds upon materials from Kartik Nagar (IITM), V Krishna Nandivada (IITM), Tony Hosking (ANU), Jens Palsberg (UCLA) and Alex Aiken (MIT).