Download presentation
Presentation is loading. Please wait.
Published byElvin Lee Modified over 9 years ago
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.