Language processors; The structure of a Compilers; The evolution of programming languages; The science of building a compiler; Applications of Compiler technology; Programming language basics; Lexical analysis: The Role of Lexical Analyzer; Input Buffering; Specifications of Tokens; Recognition of Tokens.
Introduction; Context-free Grammars; Writing a Grammar; Top-down Parsing.
Bottom-up Parsing; Introduction to LR Parsing: Simple LR.
More powerful LR parsers; Using ambiguous grammars; Parser Generators.
Syntax-Directed definitions; Evaluation order for SDDs; Applications of Syntax-directed translation; Syntax-directed translation schemes.
Variants of syntax trees; Three-address code; Types and declarations; Translation of expressions; Type checking; Control flow; Back patching; Switch statements; Intermediate code for procedures.
Storage Organization; Stack allocation of space; Access to non-local data on the stack; Heap management; Introduction to garbage collection.
Issues in the design of Code Generator; The Target language; Addresses in the target code; Basic blocks and Flow graphs; Optimization of basic blocks; A Simple Code Generator.