Topics covered in Compiler Design Chapter 1 (Introduction) - All topics covered in class[ 1.3 - 1.6 , give a read on your own as it’s easy to understand ] Chapter 2 (A SIMPLE SYNTAX-DIRECTED TRANSLATOR) not done Chapter 3 (LEXICAL ANALYSIS) 3.1 Role of the Lexical Analyser 3.2 Input Buffering 3.3 Specification of Token 3.4 Recognition of Token 3.5 The Lexical Analyzer Generator Lex Chapter 4 (A SIMPLE SYNTAX-DIRECTED TRANSLATOR) 4.1 Introduction 4.2 Context-free Grammar ● designing grammar for language ● left and right derivation ● check for ambiguity 4.3 Writing a Grammar (except 4.3.5) ● eliminating ambiguity ● Remove left recursion ● Left factoring a grammar 4.4 Top down parsing ● FIRST and FOLLOW ● LL(1) grammar and predictive parsing table for it. ● Check grammar is in LL(1) ● Error recovery (not sure) 4.5 Bottom up parsing 4.6 Introduction to LR parsing( except 4.6.5 ) ● LR Parser ● LR(0) items ● LR(0) automaton ● LR parsing table ● SLR parsing table ● Conflicts in Shift Reduce parser 4.7 More powerful parser(LR parser) ● LR(1) items ● LR(1) parsing table ● LALR parsing table ● Efficient construction of LALR table(no sure) ● Compaction of LR parsing table 4.8 Using ambiguous grammar ● Precedence and associativity to avoid ambiguity ● Dangling else ● Error recovery in LR parsing(not sure) 4.9 Parser generators ● Yacc ● Yacc with lex ● Chapter 5(SYNTAX-DIRECTED TRANSLATION) [ Below are the major topics covered from this chapter] ( except 5.5 ) 5.1 SSD definition ● Synthesis and inherited attributes ● Annotated parse tree 5.2 Evaluation order for SSD ● S attributed Definition ● L attributed definition ● Finding L/ S attribute for given semantic rule 5.3 Application of SDT ● Structure of a type( eg 2 D array) 5.4 SDT schemes ● SDT for infix to postfix ● SDT for infix to prefix ● S and L attributed definition for binary(with fraction) to decimal Chapter 6(INTERMEDIATE-CODE GENERATION) (except 6.3.6) 6.1 Variants of Syntax tree ● Representing expression as DAG 6.2 Three address code(Ways to implement) ● Symbolic Label ● Positional numbers ● Quadruple ● Triple ● Indirect triple 6.3 Types and Declaration ● Type checking and type conversion ● Type equivalence ● Declaration ● SDT for array types 6.4 Translation of expression ( 6.4.3 Row and column major transformations) 6.5 Type checking ● Rules for type checking and type conversion ● Max and widen function 6.6 Control flow ● till 6.6.4 (control flow translation of boolean expression)