CS 3300 - Language Translators
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.
Slides for the Lectures:
- Theory (CS 3300) Time and Place: Wed (11.00-11.50am), Thu (9.00-9.50am), Fri (8.00-8.50pm), F slot. Class room # CS 24.
- Lab (CS 3310) Time and Place: Thu (2.00-5.00pm), S slot. Class room # CS 24, Systems Lab.
- Teachers : V. Krishna Nandivada, C Siva Rama Murthy
- Office hours / Doubt sessions : Anytime.
- Theory TAs : Praveen Alpati (praveenalapati AT gmail.com), Madhur Diliprao Amilkanthwar (madhur13490 AT gmail.com)
- Lab TAs : Sharmishta (sharmistha.jat AT gmail.com), S. Pavan Kumar (pavan.sss1991 AT gmail.com), Suyash Gupta (suyash AT cse.iitm.ac.in), V Giridhari (giridhariv AT gmail.com)
- Office hours / Doubt sessions : Fix a time by sending an email.
- Course outline.
- Theory Discussion website is here (access restricted).
- Book 1: Compilers: Principles, Techniques, and Tools, Alfred Aho, Monica Lam, Ravi Sethi, Jeffrey D. Ullman, Addison-Wesley, 2007
- Book 2: Modern compiler implementation in Java, Second Edition, Andrew W. Appel, Jens Palsberg, Cambridge University Press, 2002.
- Reference 1: Computer Organization and Design: The Hardware/Software Interface, David Patterson and John Hennessy, Morgan Kaufmann, 1998
- Reference 2: The Java programming language, Ken Arnold, James Gosling and David Holmes, Addison-Wesley, 2000.
Lab CS3310 : The 'N'Wizard Tournament
- --- all dates --- Acknowledgements
- Aug 1,2 2012. Introduction and Lexical Analysis.
- Aug 3 2012. Parsing techniques.
- Aug 8 - Sep 28 2012. Parsing, syntax directed translation, type checking and intermediate code generation.
- Oct 3, 4, 5 2012 - Basic blocks, Flow graphs and control flow analysis.
- Oct 11, 11(b), 12, 17 2012 - Register allocation. Paper on linear scan register allocation.
- Oct 18, 19, 23, 25 2012 - Basic block optimizations.
- Oct 26 2012 - Runtime management.
- Oct 31, Nov 1 2012 Code generation. (No slides)
- Nov 2 2012 Advanced topics in code generation - translating exceptions (No slides).
- Nov 7, 8, 9 2012 - Advanced topics in code optimization and analysis (global optimizations, machine independent).
- Nov 15 2012 - Machine dependent optimizations - instruction scheduling.
- Assignment 1 details (10%). Set date: TBA. Due date: TBA
- Assignment 2 details (10%). Set date: TBA. Due date: TBA