360 likes | 389 Views
Lecture 22 Pumping Lemma for Context Free Languages. CSCE 355 Foundations of Computation. Topics: Normal forms Pumping Lemma for CFLs Closure properties. November 19, 2008. Last Time: Useless symbols: generating symbols, useful symbols Algorithm for generating and reachable symbols
E N D
Lecture 22Pumping Lemma forContext Free Languages CSCE 355 Foundations of Computation Topics: • Normal forms • Pumping Lemma for CFLs • Closure properties November 19, 2008
Last Time: • Useless symbols: • generating symbols, • useful symbols • Algorithm for generating and reachable symbols • Removal of useless symbols • Removal of epsilon productions; • Removal of unit productions • Chomsky normal form New: • Chomsky normal form • Chomsky Hierarchy • Pumping Lemma for Context Free Languages
Useless symbols: • generating symbols, • useful symbols • Algorithm for generating and reachable symbols • Removal of useless symbols • Removal of epsilon productions; • Removal of unit productions • Chomsky normal form
Chomsky Normal Form A CFG (Context Free Grammar) is in Chomsky Normal form if productions are one of the following two forms: • A BC • A a References http://www.chomsky.info/
Conversion to Chomsky Normal Form • Remove: ε-productions, unit productions • A BCDE • A abc • In general • For each terminal ‘a’ create a new non-terminal Na with Na a added as a production • A B1B2…Bk create a new non-terminals C1C2…Ck and replace the production with • A B1C1 and • Ci Bi+1Ci+1 for i=1,…k-3 • Ck-2 Bk-1Bk
Regular Grammars A CFG is regular if all productions are of the form: A a or A aB Note sentential forms in a derivation based on a regular grammar have a unique form! What is it ? Grammar NFA construction • Create a state for each nonterminal. • A aB means δ(A, a) = B and • A a means δ(A, a) = Qfinal and
Chomsky Hierarchy http://en.wikipedia.org/wiki/Chomsky_hierarchy
Backus Naur Form (BNF) • Backus Naur Form • N ::= α | … | β (just a CFG) • http://en.wikipedia.org/wiki/Backus-Naur_form • John Backus • Fortran compiler • http://en.wikipedia.org/wiki/John_Backus • Peter Naur • http://en.wikipedia.org/wiki/Peter_Naur
Greibach Normal Form • Each production RHS starts with a terminal • A aα or S ε • http://en.wikipedia.org/wiki/Greibach_normal_form
Showing Languages are not CFLs Recursive productions A a A | b B B a | b D aDb | d A * α A β
Pumping Lemma for CFLs Let L be a CFL. Then there exists a constant n such that if z is a string in L of length at least n, then we can write z = uvwxy such that • |vwx| =< n • |vx| > 0 • uviwxiy is in L for all i >= 0.
Idea behind proof • Assume CNF (or do for L(G)-{ε}) • Consider Parse Tree • Sufficiently long string z, means the parse tree must be sufficiently big.
Similarities to Pumping Lemma for Regular Languages • Given an arbitrary n. • Carefully choose z in L (depending on n) with |z| >= n. • Then for any partition z = uvwxy that satisfies • |vx| > 0 • |vwx| <= n • We must be able to “pump”, i.e. • uviwxiy is in L for all i >= 0
Example L = {anbncn | n > 0} • Given L as above, suppose we chose n for the Pumping Lemma (for CFLs). • Choose z = • Consider arbitrary partition of z = uvwxy satisfying • | vwx| =< n • |vx| > 0 • Then show …
Homework • 7.1.4 • 7.1.3 • 7.1.6