Principles of Compiler Design

Principles of Compiler Design

4.11 - 1251 ratings - Source

Compiler Translator issues, why to write compiler, compilation process in brief, front end and backend model, compiler construction tools. Interpreter and the related issues, Cross compiler, Incremental compiler, Boot strapping, byte code compilers Lexical Analysis Review of lexical analysis : alphabet, token, lexical error, Block schematic of lexical analyser, Automatic construction of lexical analyser (LEX), LEX specification and features. Syntax Analysis Role to parsers, Top down - RD parser, predictive parsers, LL (k) parsers, Bottom up parsers - Operator precedence parsers, shift-reduce : SLR, LR (k), LALR etc. using ambiguous grammars, Error detection and recovery, Automatic construction of parsers (YACC), YACC specifications. Semantic Analysis Need of semantic analysis, type checking and type conversion. Syntax Directed Translation Syntax directed definitions, construction of syntax trees, bottom-up evaluation of S-attributed definitions, L-attributed definitions, Top-down translation, bottom-up evaluation of inherited attributes. Intermediate Code Generation Intermediate languages, declarations, assignment statements, iterative statements, case statements, arrays, structures, conditional statements, Boolean expressions, back patching, procedure calls, Intermediate code generation using YACC. Run Time Storage Organisation Source language issues, Storage organization and allocation strategies, for block structured and non block structured languages, Activation record, variable-length data, procedure parameters, nested procedures, access to non-local names, procedure call and return, static and dynamic scope, Symbol table organisation and management. Code Generation Issues in code generation, Target machine description, Basic blocks and flow graphs, next use information, Register allocation and assignment, Dag representation of basic blocks, Peephole optimisation, Generating code from a DAG, Dynamic programming, Code generator, generator concept. Code Optimisation Classification of optimisation, Principle Sources of optimisation, optimisation of basic blocks, Loops in flow graphs, Optimising transformations :compile time evaluation, Common sub-expression elimination, variable propagation, code movement, strength reduction, dead code elimination and loop optimisation, Local optimisation, DAG based local optimisation. Global optimisation : Control and data flow analysis, computing global data flow information : meet over paths, Data flow equations, Data flow analysis, Iterative data flow analysis : Available expressions, live range identification.Compiler Translator issues, why to write compiler, compilation process in brief, front end and backend model, compiler construction tools.

Title:Principles of Compiler Design
Publisher:Technical Publications - 2009-01-01


You Must CONTINUE and create a free account to access unlimited downloads & streaming