350 likes | 582 Views
Last Time: Useless symbols: generating symbols, useful symbolsAlgorithm for generating and reachable symbolsRemoval of useless symbolsRemoval of epsilon productions; Removal of unit productionsChomsky normal formNew: Chomsky normal formChomsky HierarchyPumping Lemma for Context Free Lang
E N D
1. Lecture 22Pumping Lemma forContext Free Languages Topics:
Normal forms
Pumping Lemma for CFLs
Closure properties
2. 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
3. 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
4. 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/
5. Conversion to Chomsky Normal Form Remove: e-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 ? B1B2Bk create a new non-terminals C1C2Ck and replace the production with
A ? B1C1 and
Ci ? Bi+1Ci+1 for i=1,k-3
Ck-2 ? Bk-1Bk
6. Example
9. 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 d(A, a) = B and
A ? a means d(A, a) = Qfinal and
10. Example
11. Chomsky Hierarchy http://en.wikipedia.org/wiki/Chomsky_hierarchy
12. Chomsky Hierarchy Venn Diagram
13. Backus Naur Form (BNF) Backus Naur Form
N ::= a | | (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
14. Greibach Normal Form Each production RHS starts with a terminal
A ? aa or S? e
http://en.wikipedia.org/wiki/Greibach_normal_form
15. Showing Languages are not CFLs Recursive productions
A ? a A | b
B ? B a | b
D ? aDb | d
A ?* a A
16. 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.
17. Idea behind proof Assume CNF (or do for L(G)-{e})
Consider Parse Tree
Sufficiently long string z, means the parse tree must be sufficiently big.
18. 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
19. 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
20. Example
36. Homework 7.1.4
7.1.3
7.1.6