Compilers, Lexical Analysis: Lexical Analysis, regular expressions, regular languages, syntax Analysis: syntax analysis, context free grammars, bottom-up parsing, LR (0) parsing SLR parsing, (LR (I) parsing, LALR (I) parsing, classification of context-free grammars and languages, syntactic error recovery, syntax direct definitions attributes evaluation, Abstract syntax trees, symbol Tables, type checking semantic cheek for Inheritance: Sub-typing, and for Overloading. Generation of intermediate code: Generation of intermediate code- translation of Boolean expressions, switch/case statements, run-time structures, Back patching Generation of unoptimized target code.
Introduction to code. optimization: control flow graphs, live-variable analysis, allocation optimized register allocation by graph coloring Available expression analysis, Global common sub-expression elimination, nominators, Loops in control flow graphs, Def-use & use-def chains, Loop-invariant, code motion, partial redundancy elimination, constant propagation, optimizing Object-oriented programs, copy propagation, phase ordering of optimizations, Instruction scheduling, optimizations for memory hierarchies.