3 Hours/Week, 3 Credits

Introduction to compilers: Introductory concepts, types of compilers, applications, phases of a compiler. Lexical analysis: Role of the lexical analyzer, input buffering, token specification, recognition of tokens, symbol tables. Parsing: Parser and its role, context free grammars, top-down parsing. Syntax-directed translation: Syntax-directed definitions, construction of syntax trees, top-down translation. Type checking: Type systems, type expressions, static and dynamic checking of types, error recovery. Run-time organization: Run-time storage organization, storage strategies. Intermediate code generation: Intermediate languages, declarations, assignment statements. Code optimization: Basic concepts of code optimization, principal sources of optimization. Code generation. Features of some common compilers: Characteristic features of C, Pascal and Fortran compilers.