CS620T: Compilers - Principles and Implementation
Autumn 2026
Room CLT309 - Tuesdays (8:30AM - 9:55AM), Thursdays (10AM to 11:55AM)
About the Course
Description:
This course focuses on the principles of compiler design and implementation in the context of LLVM. Topics include:
- Scanning and parsing: determining the syntactic structure of a program
- Semantic routines: determining the meaning of a program and building intermediate representation
- Code generation: emitting equivalent code for the program
- Optimizations: improving the performance of a program
- Program analysis and transformation: determining interesting information about program's behavior
Details:
The course syllabus discusses most of the details of the course, including a tentative schedule of topics, exam dates, and other administrative information. Announcements, assignment links, and discussion will be posted on the Google classroom. If you have a question about a concept covered in lecture or about a detail of an assignment, check the discussion page first!
Instructor:
Nikhil Hegde
nikhilh 'at' iitdh 'dot' ac 'dot' in
TAs:
Nithin Damarla
cs25mt017 'at' iitdh 'dot' ac 'dot' in
Lecture Schedule and Notes
Some of the slides are based on those designed by Prof. Kulkarni and Prof. Aiken
- Week 1 (4/8, 6/8): Syllabus, Course Overview, Structure of a Compiler, Implementation of a Scanner; Slides
- Week 2 (11/8, 13/8): Scanner implementation contd., Parsers and tool-based implementationSlides
- Week 3 (18/8, 20/8): Parsers (contd..)- top-down parsing and implementation, bottom-up parsingSlides
- Week 4 (25/8, 27/8): Semantic Processing - AST (construction using: handwritten code, Python library), Symbol TablesSlides
- Week 5 (1/9, ): Semantic Processing (contd..) - AST and SymbolTable construction (for Python and C-like programs)Slides
Quizzes, Homework Assignments, and Exams
All homework assignments are due at 11:59PM unless otherwise announced. Assignment and exam details will be posted during the semester.
Code examples are placed in Github repository here
- Homework1: visit ANTLR Lab, using the FPE grammar dicussed in class, for some example FPE inputs, generate corresponding parse trees and share the screenshot (containing grammar, input, and parse tree) in the discussion forum.
- In-Class Quiz: 1/9