Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Pushdown Automata Definition: relation to  -NFA Moves of the PDA Languages of the PDA Deterministic PDA’s Quiz Wednesday 11-19-14 on CFGs lecture #3.

Similar presentations


Presentation on theme: "1 Pushdown Automata Definition: relation to  -NFA Moves of the PDA Languages of the PDA Deterministic PDA’s Quiz Wednesday 11-19-14 on CFGs lecture #3."— Presentation transcript:

1 1 Pushdown Automata Definition: relation to  -NFA Moves of the PDA Languages of the PDA Deterministic PDA’s Quiz Wednesday 11-19-14 on CFGs lecture #3

2 2 Pushdown Automata uThe PDA is an automaton equivalent to the CFG in language-defining power. uOnly the nondeterministic PDA defines all the CFL’s. uThe deterministic version models parsers. wMost programming languages have deterministic PDA’s.

3 3 PDA’s related to  -NFA’s  Think of an ε -NFA with the additional power that it can manipulate a stack. uMoves are determined by: 1.The current state of the  -NFA), 2.The current input symbol (or ε ), and 3.The current symbol on top of its stack.

4 4 PDA’s related to  -NFA’s - 2 uBeing nondeterministic, the PDA can simultaneously explore several moves. uIn each move, the PDA can: 1.Change state and 2.Replace the top symbol on the stack by zero or more symbols. uZero symbols = “pop.” uOne symbol = “push”

5 5 PDA Formalism uA PDA is described by: 1.A finite set of states (Q, typically). 2.An input alphabet ( Σ, typically). 3.A stack alphabet ( Γ, typically). 4.A transition function ( δ, typically). 5.A start state (q 0, in Q, typically). 6.A start symbol (Z 0, in Γ, typically). 7.A set of final states (F ⊆ Q, typically).

6 6 Conventions on symbols ua, b, … are input symbols.  ε (empty string) may be used at any point in as a possibility (i.e. a spontaneous transition) u…, X, Y, Z are stack symbols. u…, w, x, y, z are strings of input symbols u , ,… are strings of stack symbols.

7 7 The Transition Function uTakes three arguments: 1.q is a state in Q 2.a (next input symbol) or ε. 3.Z is top symbol of stack  δ (q, a, Z) is a set of zero or more actions of the form (p,  ) where wp is a state and w  is a string of stack symbols

8 8 Actions of the PDA  If δ (q, a, Z) contains (p,  ) among its actions, then the PDA could: 1.Change its state to p. 2.Remove a from the front of the input 3.Replace Z on the top of the stack by 

9 9 Sting acceptance by PDA uDepends on status of input and stack 1.Typically all input consumed. 2.Stack could be empty or in start state

10 10 Example of PDA uDesign a PDA to accept {0 n 1 n | n > 1}. uThe states: wq = start state and where we are if we have seen only 0’s in the input so far. wp = state after we’ve seen at least one 1 and may proceed only if the inputs are 1’s. wf = accepting state.

11 11 PDA to accept {0 n 1 n | n > 1} uThe stack symbols: wZ 0 = start symbol. wWhenever Z 0 is top of stack, we have counted the same number of 1’s as 0’s (initially count is zero) wX = marker pushed onto stack every time 0 is the input (i.e. counts the number of 0’s)

12 12 PDA to accept {0 n 1 n | n > 1} uThe transitions:  (1) δ (q, 0, Z 0 ) = {(q, XZ 0 )}.  (2) δ (q, 0, X) = {(q, XX)}. These two rules cause one X to be pushed onto the stack for each 0 read from the input.  (3) δ (q, 1, X) = {(p, ε )}. When we see a 1, go to state p and pop one X.  (4) δ (p, 1, X) = {(p, ε )}. Pop one X per 1.  (5) δ (p, ε, Z 0 ) = {(f, Z 0 )}. Accept

13 13 Actions of the Example PDA q 0 0 0 1 1 1 Z0Z0

14 14 Actions of the Example PDA q 0 0 1 1 1 XZ0XZ0

15 15 Actions of the Example PDA q 0 1 1 1 XXZ0XXZ0

16 16 Actions of the Example PDA q 1 1 1 XXXZ0XXXZ0

17 17 Actions of the Example PDA p 1 XXZ0XXZ0

18 18 Actions of the Example PDA p 1 XZ0XZ0

19 19 Actions of the Example PDA p Z0Z0

20 20 Actions of the Example PDA f Z0Z0

21 21 Instantaneous Descriptions uWe can formalize the pictures just seen with an instantaneous description (ID). uA ID is a triple (q, w,  ), where: 1.q is the current state. 2.w is the remaining input. 3.  is the stack contents, top at the left.

22 22 The “Goes-To” Relation  To say that ID i can become ID j in one move of the PDA, we write i ⊦ j.  Formally, (q, aw, X  ) ⊦ (p, w,  ) for any w and , if δ (q, a, X) contains (p,  ).  Extend ⊦ to ⊦ *, meaning “zero or more moves,” by:  Basis: i ⊦ *i.  Induction: If i ⊦ *j and j ⊦ k, then i ⊦ *k.

23 23 Example: Goes-To uUsing transitions defined on slide 12, we decide if string 000111 is accept or not by a sequence of IDs. uSuperscript denotes transition used  (q, 000111, Z 0 ) 1 ⊦ (q, 00111, XZ 0 ) 2 ⊦ (q, 0111, XXZ 0 ) 2 ⊦ (q, 111, XXXZ 0 ) 3 ⊦ (p, 11, XXZ 0 ) 4 ⊦ (p, 1, XZ 0 ) 4 ⊦ (p, ε, Z 0 ) 5 ⊦ (f, ε, Z 0 )  Thus, (q, 000111, Z 0 ) ⊦ *(f, ε, Z 0 ). uWhat would happen on input 0001111?

24 24 Example of PDA again uThe transitions:  (1) δ (q, 0, Z 0 ) = {(q, XZ 0 )}.  (2) δ (q, 0, X) = {(q, XX)}. These two rules cause one X to be pushed onto the stack for each 0 read from the input.  (3) δ (q, 1, X) = {(p, ε )}. When we see a 1, go to state p and pop one X.  (4) δ (p, 1, X) = {(p, ε )}. Pop one X per 1.  (5) δ (p, ε, Z 0 ) = {(f, Z 0 )}. Accept.

25 25 Answer  (q, 0001111, Z 0 ) 1 ⊦ (q, 001111, XZ 0 ) 2 ⊦ (q, 01111, XXZ 0 ) 2 ⊦ (q, 1111, XXXZ 0 ) 3 ⊦ (p, 111, XXZ 0 ) 4 ⊦ (p, 11, XZ 0 ) 4 ⊦ (p, 1, Z 0 ) 5 ⊦ (f, 1, Z 0 ) uNote the last ID has no move. u0001111 is not accepted, because the input is not completely consumed. Legal because a PDA can use ε input even if input remains. Dead end Dead end; no  alternative

26 26 Review: PDA Formalism uA PDA is described by: 1.A finite set of states (Q, typically). 2.An input alphabet ( Σ, typically). 3.A stack alphabet ( Γ, typically). 4.A transition function ( δ, typically). 5.A start state (q 0, in Q, typically). 6.A start symbol (Z 0, in Γ, typically). 7.A set of final states (F ⊆ Q, typically).

27 27 Ex 6.1.1 pp233-234 P=({p,q},{0,1},{Z 0,X}, ,q,Z 0,{p, noIP, noSk}) uThe transitions:  (1) δ (q, 0, Z 0 ) = {(q, XZ 0 )}  (2) δ (q, 0, X) = {(q, XX)}  (3) δ (q, 1, X) = {(q, X )}  (4) δ (q, , X) = {(p, ε )}  (5) δ (p, , X) = {(p, ε )}  (6) δ (p, 1, X) = {(p, XX )}  (7) δ (p, 1, Z 0 ) = {(p, ε )} Apply to string 01 Why do both {} and () in definitions of the transition function?

28 28  (q, 01, Z 0 ) 1 ⊦ (q, 1, XZ 0 ) 3 ⊦ (q, , XZ 0 ) 4 ⊦ (p, , Z 0 ) dead end no way to empty stack  (q, 01, Z 0 ) 1 ⊦ (q, 1, XZ 0 )  ⊦ (p, , Z 0 ) 7 ⊦ (p, ,  ) accepting Ex 6.1.1a p234 input 01

29 29 CptS 317 Fall 2014 Assignment 12, Due 12-5-14 Exercise 6.2.5a text p 242 Number the moves in the transition function 1-11. Identify which move applies at each step of the trace by a superscript on the ID. Quiz Friday, 12-5-14, PDA lectures 1 and 2

30 30 Languages of a PDAs uA common way to define the language of a PDA is by final state.  If P is a PDA, then L(P) denotes the set of strings w such that (q 0, w, Z 0 ) ⊦ * (f, ε,  ) for final state f and any . uAcceptance determined by final state of P when all input consumed irrespective of stack content.

31 31 Languages of PDAs uA PDA with the same properties could define a language by empty stack.  If P is a PDA, then N(P) denotes the set of strings w such that (q 0, w, Z 0 ) ⊦ * (q, ε, ε ) for any state q. uAll input consumed, stack empty, and any state can be accepting

32 32 Languages of PDAs uThe class of all context-free languages contains both L(P) and N(p) uA language L has a PDA that accepts its strings by final state iff it has another PDA that accepts its strings by empty stack.

33 33 Restate the theorem 1.If language L has a PDA=P that accepts its strings by final state then it has a PDA=P’ that accepts its strings by empty stack 2.If language L has a PDA=P’ that accepts its strings by empty stack then it has a PDA=P” that accepts its strings by final state.

34 34 If L(P) then N(P’): Basic idea uConstruct P’ that “simulates” P’s acceptance of strings. uIf P accepts, then P’ empties its stack. uSince stack-state of P is irrelevant to its acceptance of strings, could have the case were P empties its stack without accepting. uP’ most avoid simulating this behavior because strings rejected by P could be accepted by P’

35 35 If L(P) then N(P’): Basic idea 2 uTo avoid accidentally emptying its stack, P’ uses a special bottom-marker to catch the case where P empties its stack without accepting. uSpecial bottom marker tells P’ to push P’s start symbol onto its stack and go to the start state of P

36 36 If L(P) then N(P’): Proof uP’ has all the states, symbols, and moves of P, plus: 1.Stack symbol X 0, used to guard the stack bottom against accidental emptying. 2.New start state s and “erase” state e. 3.δ (s, ε, X 0 ) = {(q 0, Z 0 X 0 )}. Gets P’ started. 4.δ (f, ε, Y) = δ (e, ε, Y) = {(e, ε )} for any final state f of P and any stack symbol Y including X 0 (erases stack).

37 37 If N(P’) then L(P’’) Basic idea uP” simulates P’ acceptance of strings. uP” has a special bottom-marker to catch the situation where P’ has consumed input and emptied its stack. uIf so, P” accepts by going to its final state.

38 38 If N(P’) then L(P’’) proof uP’’ has all the states, symbols, and moves of P’, plus: 1.Stack symbol X 0, used to guard the stack bottom. 2.New start state s and new final state f. 3.δ (s, ε, X 0 ) = {(q 0, Z 0 X 0 )}. Gets P” started. 4.δ (q, ε, X 0 ) = {(f, ε )} for any state q of P’.

39 39


Download ppt "1 Pushdown Automata Definition: relation to  -NFA Moves of the PDA Languages of the PDA Deterministic PDA’s Quiz Wednesday 11-19-14 on CFGs lecture #3."

Similar presentations


Ads by Google