|Course Code||CS 302|
|Course Name||Introduction to Compilation Techniques|
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.