CS335: Principles of Compiler Design (2010-11 Second Semester)

Instructor: Amey Karkare TAs: Barnali Basak,Sandeep Dasgupta and Varun Mishra Timings: Mon, Tue, Thu: 2:00 - 3:00 PM Classroom: CS 101

Announcements Grading Policy Topics Covered Course Contents References

This course aims to teach design and implementation of Compilers for high level Programming Languages.

Moodle Link(Internal to IITK) for the course. All students crediting and auditing the course are requested to register. We will use it for submission of assignments.


Grading Policy

Project & Assignments 35%
Midsems (2 x 15%) 30%
Endsem 35%

Topics Covered

Date Topics Remarks
Thu, 28th April EndSem
Mon, 18th April Code generation: Aho Johnson algorithm; IBurg (introduction only)
Sat, 16th April Project Demos
Thu, 14th April HOLIDAY
Tue, 12th April HOLIDAY
Mon, 11th April Code generation: Aho Johnson algorithm
Thu, 7th April Code generation: Aho Johnson algorithm
Tue, 5th April Code generation: Sethi Ullman Algorithm, Aho Johnson algorithm
Mon, 4th April Code generation: from DAG, Peephole optimizations, Sethi Ullman algorithm
Thu, 31 Mar Code generation: Simple code generation for a statement
Tue, 29th Mar Code generation: Basic blocks, Flow graph, Next use, Simple code generation for a statement
Mon, 28th Mar Intermediate code: Flow of Control, Procedures and other constructs, Code generation: Motivation
Mid Sem Recess (19th - 27th March)
Thu, 17th Mar Intermediate code: Boolean Expression, Short circuit Evaluation, Backpatching
Tue, 15th Mar Intermediate code: Symbol table, Arrays, Type coercion
Mon, 14th Mar Intermediate code: Expressions, Flow of Control, Declarations
Thu, 10th Mar Intermediate Representation: Motivation
Wed, 9th Mar Midsem #2
Tue, 8th Mar No class (Midsems)
Mon, 7th Mar No class (Midsems)
Thu, 3rd Mar Revision
Tue, 1st Mar Runtime systems: Dynamic Storage Allocation
Mon, 28th Feb Runtime Systems: Dynamic Scoping, Parameter passing
Thu, 24th Feb NO CLASS
Tue, 22nd Feb Runtime Systems: Access to non local names: Nested Procedures
Mon, 21st Feb Runtime Systems: Heap allocation, Access to non local names, Blocks, Non-nested procedures
Thu, 17th Feb Runtime Systems: Static, Stack allocation, Calling Sequences, Dangling References
Tue, 15th Feb Runtime Systems: Activation, Layout of storage/local data
Mon, 14th Feb Type system, Name Equivalence of Types, Issues with Types - Casting, Overloading, Polymorphic Functions.
Thu, 10th Feb Bottom up evaluation of inherited attributes, Type System, Type checking, Structural Equivalence of Types
Tue, 8th Feb Bottom up evaluation of inherited attributes
Mon, 7th Feb L attribted Definitions, Translation Schemes
Sat, 5th Feb Midsem #1
Thu, 3rd Feb No class (Midsems)
Tue, 1st Feb Semantic Analysis, Attributes, S attributes
Mon, 31st Jan Yacc Tutorial, Motivation for Semantic Analysis phase Yacc Tutorial by Prof Saumya Debray
Thu, 27th Jan Canonical LR(1), LALR, Yacc Yacc Tutorial by Prof Saumya Debray
Tue, 25th Jan SLR Parse table construction, LR(1) Items, Canonical LR(1) Introduction
Mon, 24 Jan Bottom up parsing: LR(0) Items, Closure, Goto, SLR Parsing
Thu, 20 Jan Bottom up parsing: Introduction, Issues
Tue, 18 Jan Syntax Analysis, Nonrecursive predictive parsing
Mon, 17 Jan Sytnax Analysis, Top down Parsing, Issues like Left Recusion, Left Factor Assignment #2. Due date: 20 February, 2011
Thu, 13 Jan Tutorial on lex, by Sandeep Dasgupta Tutorial Slides
Tue, 11 Jan Lexical Analysis
Mon, 10 Jan Lexical Analysis
Thu, 06 Jan 2011 Overview of Compilation Process, Lexical Analysis
Tue, 04 Jan 2011 Overview of Compilation Process (Back End)
Mon, 03 Jan 2011 Overview of Compilation Process (Front End)
Thu, 30 Dec 2010 Introduction, Motivation, Administrative stuff Assignment #1. Due date: 13 January, 2011

Course Contents

References and Useful Material

Check central library for any other book on Compilers, Programming Languages. You may look at comp.compilers newsgroup from time to time.