Compiler Design





Courses with significant overlap with this course:

Semester of last offering:

Date of approval: dd-mmm-yyyy

Prerequisites: ESC101A, CS210A, CS220A, CS330A

Course Contents

Compiler structure: analysis synthesis model of compilation, various phases of a compiler, tool based approach to compiler construction. Lexical analysis: interface with input, parser and symbol table, token, lexeme and patterns. Difficulties in lexical analysis. Error reporting. Implementation. Regular definition, Transition diagrams, LEX Syntax analysis: CFGs, ambiguity, associativity, precedence, top down parsing, recursive descent parsing, transformation on the grammars, predictive parsing, bottom up parsing, LR parsers (SLR, LALR, LR), YACC Syntax directed definitions: inherited and synthesized attributes, dependency graph, evaluation order, bottom up and top down evaluation of attributes, L and S attributed definitions Type checking: type system, type expressions, structural and name equivalence of types, type conversion, overloaded functions and operators, polymorphic functions, type checking in OO languages Run time system: storage organization, activation tree, activation record, parameter passing, symbol table, dynamic storage allocation, garbage collection. Intermediate code generation: intermediate representations, translation of declarations, assignments, control flow, Boolean expressions and procedure calls. Implementation issues Code generation and instruction selection: issues, basic blocks and flow graphs, register allocation, code generation, DAG representation of programs, code generation from DAG, peep hole optimization, code generator generators, specifications of machine Code optimization: Introduction to Code optimization, dataflow analysis. 


Number of sections:

Tutors for each section:

Schedule for Lectures:

Schedule for Tutorial:

Schedule for Labs:



Birds at IIT Kanpur
Information for School Children
IITK Radio
Counseling Service