Skip to content

Latest commit

 

History

History
77 lines (57 loc) · 2.85 KB

index.md

File metadata and controls

77 lines (57 loc) · 2.85 KB
layout
default

{{ site.subtitle }}

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

Name Email Lead TA for Assignment
Vimala S [email protected] 3
Sheera Shamsu [email protected] 2
Pankaj Singh Rawat [email protected] 4
Sarthak Naithani [email protected] 5
Ashok Rajeev [email protected] 5
Bhavesh Surendra Singh [email protected] 6
Jyothishmathi C V [email protected] 6

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).