Lecture 22 Pumping Lemma for Context Free Languages CSCE 355 Foundations of Computation Lecture 22 Pumping Lemma for Context Free Languages Topics: Normal forms Pumping Lemma for CFLs Closure properties November 19, 2008
Last Time: New: 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 Hierarchy Pumping Lemma for Context Free Languages
Algorithm for generating and reachable symbols 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
Example
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
Example
Chomsky Hierarchy http://en.wikipedia.org/wiki/Chomsky_hierarchy Grammar Languages Automaton Production rules (constraints) Type-0 Recursively enumerable Turing machine α β no restrictions Type-1 Context-sensitive Linear-bounded non-deterministic Turing machine αAβ αγβ Type-2 Context-free Non-deterministic pushdown automaton A α Type-3 Regular DFA A a or A aB
Chomsky Hierarchy Venn Diagram
Backus Naur Form (BNF) Backus Naur Form John Backus Peter Naur 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 uviwxi y 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 …
Example
Homework 7.1.4 7.1.3 7.1.6