220 likes | 342 Views
CSCI 2670 Introduction to Theory of Computing. September 15, 2004. Agenda. Yesterday Pumping lemma review Today Prove the pumping lemma Introduce context-free grammars. Announcement. Quiz tomorrow CGF parse trees & interpretation Pumping lemma. Nonregular languages.
E N D
CSCI 2670Introduction to Theory of Computing September 15, 2004
Agenda • Yesterday • Pumping lemma review • Today • Prove the pumping lemma • Introduce context-free grammars
Announcement • Quiz tomorrow • CGF parse trees & interpretation • Pumping lemma
Nonregular languages • There are many nonregular languages • {0n1n | n 0} • {101,101001,1010010001,…} • {w | w has the same number of 0s and 1s} • All regular languages can be generated by finite automata • States must be reused if the length of a string is greater than the number of states • If states are reused, there will be repetition
The pumping lemma Theorem: If A is a regular language, then there is a number p where, if s is any string in A of length at least p, then s may be divided into three pieces, s = xyz, satisfying the following conditions • for each i 0, xyizis in A • |y| > 0, and • |xy| p p is called the pumping length
Proof idea • Pumping length is equal to the number of states in the DFA whose language is A • p = |Q| • If A accepts a word w with |w| > p, then some state must be entered twice while processing w • Pigeonhole principle
y x z Proof idea • for each i 0, xyizis in A • |y| > 0, and • |xy| p
Proof • Let A be any regular language • Find DFA M=(Q,,,q0,F) with L(M)=A • Let p=|Q| • Let s=s1s2s3…sn be any string in A with |s| = n p • What if no such s is in A?
Proof (cont.) • Let r1, r2, r3, …, rn+1 be the sequence of states entered while processing s • r1 = q0 • rn+1 F • ri+1 = (ri, si)
Proof (cont.) • Consider the first p+1 elements of this sequence • p+1 states must contain a repeated state • Let rk be the first state to be repeated and let rt be the second occurance of this state • t p+1
Proof (cont.) • Let x=s1s2…sk-1, y=sksk+1…st-1, z=stst+1…sn • There is an error in the proof on page 79 of Sipser (y is incorrectly defined) • x takes M from r1 to rk • y takes M from rk to rt • z takes M from rt to rn+1, which is an accept state • Since rk and rt are the same state, M must accept xyiz for any i=0, 1, 2, …
Proof (cont.) • Have we satisfied the conditions of the theorem? • for each i 0, xyizis in A • |y| > 0, and • |xy| p • Have we satisfied the conditions of the theorem? • for each i 0, xyizis in A • Yes • |y| > 0, and • Yes since t > k and y=sksk+1…st-1 • |xy| p • Yes since t p+1 and xy = s1s2…st-1
Regular languages -- Summary • Let R be any language. The following are equivalent • R is a regular language • R = L(M) for some finite automata M, where M is a DFA, an NFA, or a GNFA • R is describe by some regular expression • R has a pumping length of p • If R can be shown not to have a finite pumping length, then R is not regular
Context-free grammars • The shortcoming of finite automata is that each state has very limited meaning • You have no memory of where you’ve been – only knowledge of where you are • Context-free grammars are a more powerful method of describing languages • Example: {0n1n | n 0} is a CFG
Example CFG • Context-free grammars use substitution to maintain knowledge S (S) S SS S () • All possible legal parenthesis pairings can be expressed by consecutive applications of these rules • Is this a regular language?
Example S (S) | SS | () • (()())(()) • S SS (S)(S) (SS)(()) (()())(()) • This sequence of substitutions is called a derivation
S S S S S S ( () () ) ( () ) Parse tree S (S) | SS | () S
Example 2 S Sb | Bb B aBb | aCb C ε • Derivation for aaabbbbb SSb Bbb aaBbbbb aaaεbbbbb aBbbb aaaCbbbbb
S B B B C a a a ε b b b b b Example 2 parse tree S
Example 2 S Sb | Bb B aBb | aCb C ε Question 1: What language does this grammar accept? Answer: {anbm | m > n > 0} Question 2: Can this CFG be simplified? Answer: yes. Replace BaCb with Bab and remove Cε
Other languages described by CFG’s • The foxtrot • http://linus.socs.uts.edu.au/~don/pubs/foxtrot.html • A type of Tamil poetry called Venpa • Ancient language of Sanscrit • http://en.wikipedia.org/wiki/Context-free_grammar
Tomorrow • Formal definition for CFG • Designing CFG’s