CS 302 : Introduction to Compilation Techniques
Course Code CS 302
Course Name Introduction to Compilation Techniques
Offered to UG
Pre-requisites NIL
Lecture 2
Tutorial 0
Practical 0
Credit 4*
Reference 1. Alfred V. Aho, Monica S. Lam, Ravi Sethi and Jeffrey D. Ullman: Compiler Design: Principles, Techniques, and Tools, 2/E, Addison Prentice-Hall, 2006.
2. Andrew Appel, M Ginsburg, Modern Compiler Implementation in C/ML/Java, Cambridge University Press, 2004
Description The main objective of this course is to introduce the students to compilers. They will get to learn how a higher level programming language is transformed into machine code which a computer executes. This is an introductory level course for half-a-semester. 1. Compiler structure: analysis-synthesis model of compilation, various phases of a compiler, tool based approach to compiler construction.
2. Lexical analysis: interface with input, parser and symbol table, token, lexeme and patterns. Difficulties in lexical analysis. Error reporting. Implementation. Regular definition, Transition diagrams.
3. 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).
4. Syntax directed definitions: inherited and synthesized attributes, dependency graph, evaluation order, bottom up and top down evaluation of attributes, L- and S-attributed definitions.