CSCI 2670 Introduction to Theory of Computing September
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 • There are many nonregular languages – {0 n 1 n | n 0} – {101, 1010010001, …} – {w | w has the same number of 0 s and 1 s} • 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 1. for each i 0, xyiz is in A 2. |y| > 0, and 3. |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
Proof idea y x 1. for each i 0, xyiz is in A 2. |y| > 0, and 3. |xy| p z
Proof • • Let A be any regular language Find DFA M=(Q, , , q 0, F) with L(M)=A Let p=|Q| Let s=s 1 s 2 s 3…sn be any string in A with |s| = n p – What if no such s is in A?
Proof (cont. ) • Let r 1, r 2, r 3, …, rn+1 be the sequence of states entered while processing s – r 1 = q 0 – 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=s 1 s 2…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 r 1 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 theorem? 1. for each i 0, xyiz is in A ü Yes 2. |y| > 0, and ü Yes since t > k and y=sksk+1…st-1 3. |xy| p ü Yes since t p+1 and xy = s 1 s 2…st-1
Regular languages -- Summary • • Let R be any language. The following are equivalent 1. R is a regular language 2. R = L(M) for some finite automata M, where M is a DFA, an NFA, or a GNFA 3. R is describe by some regular expression 4. 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: {0 n 1 n | 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
Parse tree S (S) | SS | () S ( S S S () () ) ( () )
Example 2 • S Sb | Bb B a. Bb | a. Cb C ε Derivation for aaabbbbb S Sb a. Bbbb Bbb aa. Bbbbb aaa. Cbbbbb aaaεbbbbb
Example 2 parse tree S S B B B C a a a ε b b b
Example 2 S Sb | Bb B a. Bb | a. Cb C ε Question 1: What language does this grammar accept? Answer: {anbm | m > n > 0} Question 2: Can this CFG be simplified? Answer: yes. Replace B a. Cb with B ab 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
- Slides: 22