Prerequisites: ESC101A, CS210A, CS220A, CS330A
3-0-0-12
Course Contents
Compiler structure: analysis synthesis model of compilation, various phases of a compiler, tool based approach to compiler construction. Lexical analysis: interface with input, parser and symbol table, token, lexeme and patterns. Difficulties in lexical analysis. Error reporting. Implementation. Regular definition, Transition diagrams, LEX Syntax analysis: CFGs, ambiguity, associativity, precedence, top down parsing, recursive descent parsing, transformation on the grammars, predictive parsing, bottom up parsing, LR parsers (SLR, LALR, LR), YACC Syntax directed definitions: inherited and synthesized attributes, dependency graph, evaluation order, bottom up and top down evaluation of attributes, L and S attributed definitions Type checking: type system, type expressions, structural and name equivalence of types, type conversion, overloaded functions and operators, polymorphic functions, type checking in OO languages Run time system: storage organization, activation tree, activation record, parameter passing, symbol table, dynamic storage allocation, garbage collection. Intermediate code generation: intermediate representations, translation of declarations, assignments, control flow, Boolean expressions and procedure calls. Implementation issues Code generation and instruction selection: issues, basic blocks and flow graphs, register allocation, code generation, DAG representation of programs, code generation from DAG, peep hole optimization, code generator generators, specifications of machine Code optimization: Introduction to Code optimization, dataflow analysis.
Topics
Current Course Information
Instructor(s):
Number of sections:
Tutors for each section:
Schedule for Lectures:
Schedule for Tutorial:
Schedule for Labs: