CS 302 : Introduction to Compilation Techniques
Course Code CS 302
Course Name Introduction to Compilation Techniques
Offered to UG
Pre-requisites Programming, Data structures and Algorithms
Lecture 3
Tutorial 0
Practical 0
Credit 6
Reference Text Book: Compilers Principles, Techniques and Tools (2nd Edition) by Aho, Sethi, Lam, Ullman
Description Description: This course helps the students to learn all the phases of a standard compiler in detail and the students learn to develop a compiler.
Syllabus: Phases of a compiler, interpreter, scope, parameter passing mechanisms
Lexical analysis, symbol table, language, regular expression, grammar, finite automaton, difficulties in lexical analysis
Syntax analysis, context-free languages, push-down automata, top-down parsing, left factoring, left recursion elimination, ambiguity, LL(1) grammar, bottom-up parsing, LR parsing, SLR, CLR, advantages and disadvantages
Semantic analysis, synthesized attributes, attribute evaluation strategy, Attributed translation grammar, type checking, type conversion
Intermediate code generation, three-address code, syntax tree, triple, quadruple, translation of boolean expressions into three-address code, backpatching
Code optimization, basic block, flow graph, local optimization, global optimization, code motion, common-subexpression elimination, peephole optimization, introduction to data-flow analysis
Code generation, instruction selection, instruction reordering, register allocation, a simple target machine model