1 / 22

CSCI 2670 Introduction to Theory of Computing

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.

Download Presentation

CSCI 2670 Introduction to Theory of Computing

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CSCI 2670Introduction to Theory of Computing September 15, 2004

  2. Agenda • Yesterday • Pumping lemma review • Today • Prove the pumping lemma • Introduce context-free grammars

  3. Announcement • Quiz tomorrow • CGF parse trees & interpretation • Pumping lemma

  4. 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

  5. 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

  6. 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

  7. y x z Proof idea • for each i  0, xyizis in A • |y| > 0, and • |xy|  p

  8. 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?

  9. 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)

  10. 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

  11. 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, …

  12. 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

  13. 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

  14. 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

  15. 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?

  16. Example S  (S) | SS | () • (()())(()) • S  SS  (S)(S)  (SS)(())  (()())(()) • This sequence of substitutions is called a derivation

  17. S S S S S S ( () () ) ( () ) Parse tree S  (S) | SS | () S

  18. Example 2 S  Sb | Bb B  aBb | aCb C  ε • Derivation for aaabbbbb SSb Bbb aaBbbbb aaaεbbbbb aBbbb aaaCbbbbb

  19. S B B B C a a a ε b b b b b Example 2 parse tree S

  20. 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 BaCb with Bab and remove Cε

  21. 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

  22. Tomorrow • Formal definition for CFG • Designing CFG’s

More Related