Introduction to Compiling; Lexical analysis: specification and recognition of tokens, finite automata; Syntax analysis: grammars, top-down and bottom-up passing; Syntax-directed translation; Semantic routines; Storage-allocation strategies; Code generation; Error recovery.