200 likes | 379 Views
Chapter 3. Context Free Grammars Comparison to RE Notation Specification of Context Free Grammar Rules Derivations & Language Defined by a Grammar Examples. Parse Trees & Abstract Syntax Trees. Parse Trees Abstract Syntax Tree Examples. Ambiguity. Ambiguous Grammars
E N D
Chapter 3 • Context Free Grammars • Comparison to RE Notation • Specification of Context Free Grammar Rules • Derivations & Language Defined by a Grammar • Examples Department of Software & Media Technology
Parse Trees & Abstract Syntax Trees • Parse Trees • Abstract Syntax Tree • Examples Department of Software & Media Technology
Ambiguity • Ambiguous Grammars • Precedence and Associativity • Dangling Else Problem • Inessential Ambiguity Department of Software & Media Technology
Extended Notations • EBNF Notation • Syntax Diagrams • Examples Department of Software & Media Technology
Formal Properties of CFG • Grammar Rles as Equations • Chomsky Hierarchy • Limits of Syntax as Context Free Rules Department of Software & Media Technology
FA from Grammar • One state for each non-terminal • A rule of the form • Nt1 ::= terminal, generates transition from a state to final state • A rule of the form • Nt1 ::= terminal Nt2 • Generates transition from state 1 to state 2 on an arc labeled by the terminal Department of Software & Media Technology
digit digit S letter letter letter underscore digit identifier digit Graphic representation of FA Department of Software & Media Technology
FA from RE • Each RE corresponds to a grammar • For all REs • A natural translation to FSM exists • Alternation often leads to non-deterministic machines Department of Software & Media Technology
Deterministic Finite Automata (DFA) • For all states S • For all characters C • There is at most one arc from any state S that is labeled with C • Easier to implement • No backtracking Conventions for DFA: • Error transitions are not explicitly shown • Input symbols that result in the same transition are grouped together (this set can even be given a name) • Still not displayed: stopping conditions and actions Department of Software & Media Technology
Non-Deterministic Finite Automata (NFA) • A non-deterministic FA • Has at least one state • With two arcs to two distinct states • Labeled with the same character • Example: from start state, a digit can begin an integer literal or a real literal • Implementation requires backtracking Department of Software & Media Technology
letter letter [other] start in_id finish return id digit Lookahead & Backtracking in NFA Department of Software & Media Technology
letter letter [other] start in_id finish return id digit Implementation of FA Department of Software & Media Technology
letter letter [other] start in_id finish return id digit From RE to DFA & RE to NFA Department of Software & Media Technology
NFA to DFA • There is an algorithm for converting a non-deterministic machine to a deterministic one • Result may have exponentially more states • Intuitively: need new states to express uncertainty about token: int or real • Other algorithms for minimizing number of states of FSM, for showing equivalence, etc. Department of Software & Media Technology
Example DFA Department of Software & Media Technology
Another view of the same DFA Department of Software & Media Technology
Yet another view of the same DFA Department of Software & Media Technology
State Minimization in DFA Department of Software & Media Technology
TINY DFA: Department of Software & Media Technology
Lex for Scanner • Lex Conventions for RE • Format of a Lex Input File Department of Software & Media Technology