|
Courses with significant overlap with this course: Semester of last offering: Date of approval: dd-mmm-yyyy |
|||||
Prerequisites: ESC101A, CS210A, CS220A, CS330A 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
Instructor(s):
Number of sections: Tutors for each section: Schedule for Lectures: Schedule for Tutorial: Schedule for Labs:
|