Uploaded by jokegej399

Compiler Design

advertisement
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)
Download