This course aims to teach topics in program analysis and compiler optimizations.
Any report/program/assignment you submit must clearly distinguish your contribution from others (webpages, softwares, report, discussions with other students). The penalty for copying in any form will be severe.
Important: All emails either to the instructor or the TAs should begin with subject line "[CS618]" -- without any spaces in the course code (and without quotes). Email not complying to this rule will NOT be entertained.
The slides are not suitable for taking prints as there is a lot of redundancy due to overlays. Use handouts if you really need a print.
# | Description | Handout | Slides | References |
---|---|---|---|---|
1. | Introduction | [handouts] | [slides] | |
2. | Overview of Optimizations | [handouts] | [slides] | |
3. | Data Flow Analysis | [handouts] | [slides] | |
4. | Data Flow Analysis (contd ...) | [handouts] | [slides] | |
5. | Data Flow Analysis Foundations | [handouts] | [slides] | |
6. | DFA Foundations (contd ...) | [handouts] | [slides] | |
7. | Flow Graph Theory | [handouts] | [slides] | |
8. | Constant Propagation | [handouts] | [slides] | |
9. | SSA | [handouts] | [slides] | [paper] |
10. | SSA (contd ...) | [handouts] | [slides] | |
11. | Conditional Constant Propagation | [handouts] | [slides] | [paper] |
12. | Interprocedural analysis | [handouts] | [slides] | |
13. | ... (Functional Approach) | [handouts] | [slides] | |
--. | ... (Call-strings Approach) | [handouts] | [slides] | By Prof Uday |
14. | Liveness based Garbage Collection | [handouts] | [slides] | [paper1][paper2] |
--. | ... (continued) | [Mohri-Nederhof Transformation] | ||
15. | Pointer Analysis | [handouts] | [slides] | [Anderson's][Steensgaard's] |
16. | Types and Program Analysis | [handouts] | [slides] | |
17. | Untyped Lambda Calculus | [handouts] | [slides] | |
18. | Typed Arithmetic Expressions | [handouts] | [slides] | |
19. | Simply Typed Lambda Calculus | [handouts] | [slides] | |
20. | Type-based Points-to Analysis | [handouts] | [slides] | [Steensgaard's] [Manuvir's] |
--: Reading Assignment
There will be short assignments to give you a chance to apply the lecture material. Assignments will have some written and some programming tasks.
Thanks to TAs(Binapani Beria, Sushmita Nikose ) for the solutions to the assignments. ******
The course project gives you a chance to explore a specific area of compiler implementation in more depth. You will be required to implement some compiler feature, and perform an experimental evaluation of your implementation. You may do your implementation within any freely-available compiler infrastructure (e.g. LLVM, gcc, Soot, etc.)
You will report on your project in a paper in the style of a research paper (approx. 10 pages), and give a presentation/demo of your project to the class. LaTeX and MS Word templates for the paper format are available from SIGPLAN.
Important: Use of git version control system on bitbucket is required for programming assignments and project.
The course will mainly cover topics from the following list (not necessarily in the same order). Not all topics listed below will be covered, and depending on class feedback, new topics may be added.
Credit
Assignments | 15% |
Quizzes | 10% |
Mid semester exam | 15% |
End semester exam | 25% |
Course Project | 35% |
(Proposal: 5%, Report: 10%, Implementation: 15%, Presentation: 5%) |
Audit
- Assignments |
- Mid semester exam |
- Quizzes |
- Paper Critique and Presentation |
Must get satisfactory marks in midsem/quizzes. Must be present for at least half of the total number of quizzes.
Last Modified at : Wed May 31 07:11:40 IST 2017