Download presentation
Presentation is loading. Please wait.
Published bySusanna Lambert Modified over 8 years ago
1
About Grammars Hopcroft, Motawi, Ullman, Chap 7.1, 6.3, 5.4
2
About grammars Normal forms for grammars Equivalence between CFGs and PDAs Grammar Ambiguity
3
Grammar Productions Formal definition of a grammar provides much leeway Productions can be simplified or restricted to make proofs about CFGs simpler
4
Simplifications Removing useless symbols Those that cannot be derived from S and those that cannot reduce to a terminal string Removing є-productions A є Removing unit productions A B Normal forms e.g., Chomsky Normal Form
5
Useless symbols We want to ensure all productions in the grammar have no useless symbols, i.e., all symbols are generating and reachable Generating symbols All variables that could eventually derive a string of terminals; i.e., all A in V, such that there exists a string w of terminals where A * w Reachable symbols All variables that can be reached from the start symbol; i.e., all A in V, such that S * uAw, for some u and w
6
Removing useless productions Remove productions with non-generating symbols Requires identifying generating symbols recursively: right hand side of production contains only terminals and generating symbols Remove productions with non-reachable symbols Requires identifying reachable symbols recursively: S is reachable, and so are symbols that exist on the right hand side of productions with reachable symbols on the left hand side
7
Epsilon Productions є-productions: productions of the form A є Nullable symbols: symbols A where A є or A B 1 B 2 …B n such that each B i is nullable For each production that has a nullable symbol on the right hand side, add a production without that symbol; apply rule iteratively on resulting productions After this step, all є-productions can be removed Note, if the language L generated by the original grammar includes є, then the language generated by the resulting grammar will be L – {є}
8
Unit Productions Unit productions: all productions of the form A B Removing unit productions Identify unit pairs: pairs of variables (A, B) such that A * B, and the derivation involves only unit productions For each unit pair (A, B), add the production A w, whenever B w and w is not a variable Unit productions may now be removed
9
Chomsky Normal Form CNF: all productions are of the form A BC(B, C are variables) A a(a is a terminal) How do we convert a grammar to an equivalent CNF grammar?
10
Greibach Normal Form GNF: all productions are of the form A aB 1 B 2 …B n Note that A a is allowed Note that if the grammar is GNF, each step in a derivation of a string adds a terminal How do we convert a grammar to an equivalent GNF grammar?
11
Equivalence between CFGs and PDAs Converting CFGs to PDAs Easier to use PDA version that accepts by empty stack Given a context free grammar G = (V,T,P,S), construct a pushdown automaton M Need to specify states, input and stack symbols and the transition function
12
CFG to PDA M = (Q, , , , q 0, Z 0 ), where Q contains a single state, q 0 = T = {V T} Z 0 = S Note: no need for F (final states) since we are accepting by empty stack And is …
13
CFG to PDA Transition function is based on the variables, productions and terminals of the grammar: (q 0, є, A) = (q 0, w) whenever A w (q 0, a, a) = (q 0, є ) for each a in T Easier and more intuitive if the grammar is of GNF (q 0, a, A) = (q 0, B 1 B 2 …B n ) for each production A aB 1 B 2 …B n
14
PDA to CFG More elaborate construction Variables in the resulting grammar dependent on states and stack symbols Read section 6.3
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.