Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSCI 2670 Introduction to Theory of Computing September 22, 2005.

Similar presentations


Presentation on theme: "CSCI 2670 Introduction to Theory of Computing September 22, 2005."— Presentation transcript:

1 CSCI 2670 Introduction to Theory of Computing September 22, 2005

2 Agenda Yesterday –Pushdown automata Today –Equivalence of pushdown automata and CFG’s –Pumping lemma for CFG’s

3 September 22, 2005 Announcements Matrix Reloaded tonight! –6:30 in Boyd 328 Free popcorn 25 cent Coke Pizza will be ordered at cost if people want

4 September 22, 2005 Equivalence of PDA’s and CFG’s Theorem: A language is context free if and only if some pushdown automaton recognizes it Proved in two lemmas – one for the “if” direction and one for the “only if” direction We will only do the “only if” step – i.e., show that every context-free language has an associated PDA

5 September 22, 2005 CFG’s are recognized by PDA’s Lemma: If a language is context free, then some pushdown automaton recognizes it Proof idea: Construct a PDA following CFG rules

6 September 22, 2005 CFG’s are recognized by PDA’s Format of the new PDA q start q loop q accept ε, ε  S$ε, $ εε, $ ε a,a  ε ε,A  w Start by pushing the start variable and stack bottom marker Have a transition for each rule replacing the variable with its right hand side Have a transition that allows us to read each alphabet symbol if it is at the top of the stack Finish only if the stack is empty

7 September 22, 2005 Constructing the PDA You can read any symbol in  when that symbol is at the top of the stack –Transitions of the form a,a  ε The rules will be pushed onto the stack – when a variable A is on top of the stack and there is a rule A  w, you pop A and push w You can go to the accept state only if the stack is empty

8 September 22, 2005 Idea of PDA construction for A  xBz State control a b AtAt State control a b xBztxBzt

9 September 22, 2005 Actual construction for A  xBz ε,A  z ε, ε  B ε, ε  x In an abuse of notation, we say  (q,ε,A)=(q,xBz)

10 September 22, 2005 Constructing the PDA Q = {q start, q loop, q accept }  E, where E is the set of states used for replacement rules onto the stack  (the PDA alphabet) is the set of terminals in the CFG  (the stack alphabet) is the union of the terminals and the variables and {$} (or some suitable placeholder)

11 September 22, 2005 Constructing the PDA  is comprised of several rules 1.  (q start,ε,ε)=(q loop,S$) -Start with placeholder on the stack and with the start variable 2.  (q loop,a,a)=(q loop,ε) for every a  -Terminals may be read off the top of the stack 3.  (q loop,ε,A)=(q loop,w) for every rule A  w -Implement replacement rules 4.  (q loop,ε,$)=(q accept,ε) -Accept when the stack is empty

12 September 22, 2005 Example S  SS | (S) | () q start q loop q accept ε, ε  S$ε, $ εε, $ ε (,(  ε ),)  ε ε,S  SS ε,S  (S) ε,S  ()

13 September 22, 2005 Example Read (()()) q start q accept ε, ε  S$ε, $ εε, $ ε (,(  ε ),)  ε ε,S  SS ε,S  (S) ε,S  () S$S$ q loop

14 September 22, 2005 Example Read (()()) q start q accept ε, ε  S$ε, $ εε, $ ε (,(  ε ),)  ε ε,S  SS ε,S  (S) ε,S  () q loop (S)$(S)$

15 September 22, 2005 Example Read (()()) q start q accept ε, ε  S$ε, $ εε, $ ε (,(  ε ),)  ε ε,S  SS ε,S  (S) ε,S  () q loop S)$S)$ (

16 September 22, 2005 Example Read (()()) q start q accept ε, ε  S$ε, $ εε, $ ε (,(  ε ),)  ε ε,S  SS ε,S  (S) ε,S  () q loop S SS)$SS)$ (

17 September 22, 2005 Example Read (()()) q start q accept ε, ε  S$ε, $ εε, $ ε (,(  ε ),)  ε ε,S  SS ε,S  (S) ε,S  () q loop ()S)$()S)$ (

18 September 22, 2005 Example Read (()()) q start q accept ε, ε  S$ε, $ εε, $ ε (,(  ε ),)  ε ε,S  SS ε,S  (S) ε,S  () q loop )S)$)S)$ ((

19 September 22, 2005 Example Read (()()) q start q accept ε, ε  S$ε, $ εε, $ ε (,(  ε ),)  ε ε,S  SS ε,S  (S) ε,S  () q loop S)$S)$ (()

20 September 22, 2005 Example Read (()()) q start q accept ε, ε  S$ε, $ εε, $ ε (,(  ε ),)  ε ε,S  SS ε,S  (S) ε,S  () q loop ())$())$ (()

21 September 22, 2005 Example Read (()()) q start q accept ε, ε  S$ε, $ εε, $ ε (,(  ε ),)  ε ε,S  SS ε,S  (S) ε,S  () q loop ))$))$ (()(

22 September 22, 2005 Example Read (()()) q start q accept ε, ε  S$ε, $ εε, $ ε (,(  ε ),)  ε ε,S  SS ε,S  (S) ε,S  () q loop )$)$ (()()

23 September 22, 2005 Example Read (()()) q start q accept ε, ε  S$ε, $ εε, $ ε (,(  ε ),)  ε ε,S  SS ε,S  (S) ε,S  () q loop $ (()())

24 September 22, 2005 Example Read (()()) q start ε, ε  S$ε, $ εε, $ ε (,(  ε ),)  ε ε,S  SS ε,S  (S) ε,S  () q loop (()()) q accept

25 September 22, 2005 The pumping lemma for RE’s The pumping lemma for RE’s depends on the structure of the DFA and the fact that a state must be revisited –Only a finite number of states x y z

26 September 22, 2005 The pumping lemma for CFG’s What might be repeated in a CFG? –The variables T R R uvx yz v & y will be repeated simultaneously

27 September 22, 2005 The pumping lemma for CFG’s T R R uvx yz T R u v y z R x y v R

28 September 22, 2005 The pumping lemma for CFG’s T R R uvx yz T R u x z

29 September 22, 2005 The pumping lemma for CFL’s Theorem: If A is a context-free language, then there is a number p (the pumping length) where, if s is any string in A of length at least p, then s may be divided into five pieces s=uvxyz satisfying the conditions: 1.For each i  0, uv i xy i z  A 2.|vy| > 0 3.|vxy|  p

30 September 22, 2005 Finding the pumping length of a CFL Let b equal the longest right-hand side of any rule (assume b > 1) –Each node in the parse tree has at most b children –At most b h nodes are h steps from the start node Let p equal b |V|+2, where |V| is the number of variables (could be huge!) –Tree height is at least |V|+2

31 September 22, 2005 Example Show A is not context free, where A={a n |n is prime} Proof: Assume A is context-free and let p be the pumping length of A. Let w=a n for any n  p. By the pumping lemma, w=uvxyz such that |vxy|  p, |vy|>0, and uv i xy i z  A for all i=0,2,1….

32 September 22, 2005 Example (cont.) Show A is not context free, where A={a n |n is prime} Clearly, vy=a k for some k Consider the string uv n+1 xy n+1 z This string add n copies of a k to w – i.e., this is a n+nk Since the exponent is n(1+k) this in not in A, which contradicts the pumping lemma. Therefore, A is not context free.

33 September 22, 2005

34


Download ppt "CSCI 2670 Introduction to Theory of Computing September 22, 2005."

Similar presentations


Ads by Google