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.This is a sister course to CS3020 being offered to B.Techs. This beginning level M.Tech/PhD course would have additional project work, a paper presentation, and some research component.
3rd-Aug-2014 | Organization & Logistics, An Overview of Compilers PDF Acknowledgements Guest Lecture by Prof. Sanjay Rajopadhye from Colorado State University "Scheduling Reductions" Readings: ALSU, Ch.1 |
6th-Aug-2014 | An Overview of Compilers (contd.) Introduction to Lexical Analysis PDF1 Finite Automata (Deterministic and Non-deterministic), Regular Expressions, Transition Diagrams. Code Examples Regular expressions. Readings (All) ALSU, Sec. 2.6 |
10th-Aug-2014 | Lexical Analysis (contd.)
PDF1
PDF2 Finite Automata (Deterministic and Non-deterministic), Regular Expressions, Transition Diagrams. Code Examples Regular expressions. Readings (All) ALSU, Sec. 2.6 |
13th-Aug-2014 | Lexical Analysis (contd.)
PDF1
PDF2 Finite Automata (Deterministic and Non-deterministic), Regular Expressions, Transition Diagrams. Code Examples EDG study: float, integer literals. Readings (All) ALSU, Sec. 2.6 Readings (All) Cool-manual PDF and Cool Tour PDF |
TBD |
Activity | Weight |
---|---|
Class Participation and Attendance | 10% |
Gradiance + Written Homeworks | 10% |
Mini Prog. Assignments (LLVM) | 15% |
Mid Term Exam | 25% |
End Term Exam | 30% |
Project | 10% |
Activity | Weight |
---|---|
Programming Assignments (Project) | 60% |
Mini Prog. Assignments (LLVM) | 15% |
Programming Exam | 25% |
Activity | Weight |
---|---|
Mid Term Exam | 15% |
End Term Exam | 25% |
Project + Mini Prog. Assignments (LLVM) | 25+10=35% |
Gradiance Homeworks | 10% |
Paper Presentation + Writeup | 10+5=15% |