ELECTIVE II-2 COMPILER CONSTRUCTION
Lexical analysis: Some sophisticated pattern matching algorithms and their optimization, use of LEX.
Error recovery: Detection, reporting, recovery and repair of errors in the compilation process.
Syntax analysis: Canonical LR prasers, handling of ambiguous grammars, error reporting in LL (1), operator precedence and LR parsing, efficient generation of LALR (1) sets, optimization of LR parsers, optimization of transformations.
Run time storage: Activation records, handling recursive calls, management of variable length blocks, garbage collection and compaction, allocation strategies for arrays, structures, class.
Type checking: Overloading of functions and operators, polymorphic functions, unification algorithm.
Code generation and semantic analysis: Semantic stacks, attributed translation, analysis of syntax, directed translation, evaluation of expressions, control structures, procedure calls.
Code optimization: Basic blocks and folding, optimization within iterative loops, global optimization through flow graph analysis, code-improving transformations, machine dependent optimization.
Compiler-Compilers: Parser generators, YACC attributed LL (1) parser generator, machine independent code generation.
Other topics: Compilers for parallel machines, compilers for functional languages.