Classification of grammars. Context free grammars. Deterministic finite state automata
(DFA) Non-DFA Scanners. Top down parsing, LL grammars. Bottom up parsing.
Polishing expressions Operator precedence grammar. IR grammars. Comparison of
parsing methods. Error handling.
Symbol table handling techniques. Organisation for non-block and block structured
languages. Run time storage administration. Static and dynamic allocation. Intermediate
forms of source program. Polish N-tuple and syntax trees. Semantic analysis and code
generation. Code optimisation, folding, and redundant sub-expression evaluation.
Optimisation within iterative loops.