0% found this document useful (0 votes)
215 views

Compiler Design

This document outlines a course on Compiler Design taught over 50 lectures across 14 modules. The course is coordinated by Prof. Sanjeev K. Aggarwal of the Department of Computer Science and Engineering at IIT Kanpur. Key topics covered include lexical analysis, syntax analysis using grammars and parsers, syntax-directed definitions, type checking, code generation, and optimization techniques. Students complete a project developing a compiler for a C subset using tools like Lex and Yacc targeting the SPIM simulator.

Uploaded by

amit_itman
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
215 views

Compiler Design

This document outlines a course on Compiler Design taught over 50 lectures across 14 modules. The course is coordinated by Prof. Sanjeev K. Aggarwal of the Department of Computer Science and Engineering at IIT Kanpur. Key topics covered include lexical analysis, syntax analysis using grammars and parsers, syntax-directed definitions, type checking, code generation, and optimization techniques. Students complete a project developing a compiler for a C subset using tools like Lex and Yacc targeting the SPIM simulator.

Uploaded by

amit_itman
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

Course 27.

Compiler Design (Web Course)

Faculty Coordinator(s) :

1. Prof. Sanjeev K. Aggarwal

Department of Computer Science and Engineering

Indian Institute of Technology, Kanpur

Kanpur

E-Mail: [email protected]

Telephone : (91- 512) Off : 259 7614

Detailed Syllabus :

Compiler Design (total 50 lectures)

Module 1: (3 lectures) Compiler structure: analysis-synthesis model of compilation, various


phases of a compiler, tool based approach to compiler construction.

Module 2: (5 lectures) Lexical analysis: interface with input, parser and symbol table,
token, lexeme and patterns, difficulties in lexical analysis, error reporting, and
implementation. Regular definition, Transition diagrams, LEX.

Module 3: (4 lectures) Syntax analysis: context free grammars, ambiguity, associativity,


precedence, top down parsing, recursive descent parsing, transformation on the grammars,
predictive parsing,

Module 4: (4 lectures) Bottom up parsing, operator precedence grammars, LR parsers (SLR,


LALR, LR), YACC.

Module 5: (5 lectures) Syntax directed definitions: inherited and synthesized attributes,


dependency graph, evaluation order, bottom up and top down evaluation of attributes, L- and
S-attributed definitions.

Module 6: (3 lectures) Type checking: type system, type expressions, structural and name
equivalence of types, type conversion, overloaded functions and operators, polymorphic
functions.

Module 7: (4 lectures) Run time system: storage organization, activation tree, activation
record, parameter passing

Module 8: (3 lectures) symbol table, dynamic storage allocation.

Module 9: (3 lectures) Intermediate code generation: intermediate representations,


translation of declarations, assignments
Module 10: (3 lectures) Intermediate Code generation for control flow, boolean expressions
and procedure calls, implementation issues.

Module 11: (3 lectures) Code generation and instruction selection: issues, basic blocks and
flow graphs, register allocation, code generation

Module 12: (3 lectures) DAG representation of programs, code generation from dags, peep
hole optimization, code generator generators, specifications of machine.

Module 13: (4 lectures) Code optimization, source of optimizations, optimization of basic


blocks, loops, global dataflow analysis, solution to iterative dataflow equations.

Module 14: (3 lectures) Code improving transformations, dealing with aliases, data flow
analysis of structured flow graphs

The course will have project where students will have to develop compiler for a subset of C
language using tools like Lex and Yacc. The target environment will be SPIM simulator.

You might also like