CS 6013 - Modern Compilers - Theory and Practice
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 few program analyses and optimization techniques.
Slides for the Lectures:
- Time and Place: Wed (2.00-3.40pm), Fri (2.00-3.40pm), R-T slots. Class room # CS 34.
- Teacher : V. Krishna Nandivada
- Office hours / Doubt sessions : Anytime.
- TA : Ashok Gautam.
- Office hours / Doubt sessions : Fix a time by sending an email.
- Course outline.
- Software, documentation and tools link is here.
- Submission guidelines.
- Discussion website is here (access restricted).
- Book 1: Advanced Compiler Design and Implementation: Steven Muchnick.
- Book 2: Compilers: Principles, Techniques, and Tools: A V Aho, Monical Lam, R Sethi, J D Ullman.
- Book 3: Principles of Program Analysis: Flemming Nielson, Hanne Riis Nielson, Chris Hankin, Springer, 2005.
- Book 4: Modern compiler implementation in Java, Second Edition, Andrew W. Appel, Jens Palsberg, Cambridge University Press, 2002.
- Book 5: The Java programming language, Arnold, Gosling and Holmes, Addison-Wesley, 2005. Also see the online manuals in the documentation section.
- Paper 0: The Fortran Automatic Coding system, Backus et al, 1957.
- Paper 1: A unified approach to program optimization: Gary A Kildall, 1973.
- Paper 2: Constant Propagation with conditional branches: Wegman and Zadeck.
- Paper 3: Interprocedural constant propagation: Callahan, Cooper, Kennedy and Torczon.
- Paper 4: Linear Scan Register Allocation: Poletto and Sarkar.
- --- all dates --- Acknowledgements
- Aug 1,3,8 2012. Introduction, overview of lexical and syntax analysis
- Aug 10 2012. JavaCC, Visitor Pattern and JTB
- Aug 13, 17, 22, 24 2012. Semantic analysis
- Aug 31, Sep 5, 7 2012. Control flow analysis
- Sep 7, 12, 14 2012. Data flow analysis, Constant Propagation
- Sep 14 Conditional constant propagation
- Sep 21, 24 2012. Interprocedural Constant Propagation
- Sep 26 Dataflow analysis over control trees.
- Oct 3, 10 Points to Analysis
- Oct 12, 17 Register Allocation. Paper on linear scan register allocation.
- Oct 19 Register Allocation. Paper on iterated register coalescing register allocation.
- Oct 24, 26 2012 Dependence analysis, Dependence Testing.
- Oct 31, Nov 02 2012 Runtime management and code generation.
- Nov 02 2012 Optimizations overview
- Nov 05, 09, 12 2012 SSA and Optimizations SSA and conditional constants paper.
- Nov 14 2012 Garbage collection (no slides) GC survey paper
- Midterm exam (20%) on Sep 28th 2012. Closed book, closed notes, closed neighbor. sample solution.
- Final exam (40%) on Nov 21th 2012, 2pm. Closed book, closed notes, closed neighbor. sample solution.