Loading in 5 sec....

Equivalence of Pushdown Automata and Context-Free GrammarPowerPoint Presentation

Equivalence of Pushdown Automata and Context-Free Grammar

Download Presentation

Equivalence of Pushdown Automata and Context-Free Grammar

Loading in 2 Seconds...

- 212 Views
- Uploaded on
- Presentation posted in: General

Equivalence of Pushdown Automata and Context-Free Grammar

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Equivalence of Pushdown Automata and Context-Free Grammar

Prof. Héctor Muñoz-Avila

- Nondeterministic computation
- Give us flexibility for constructing devices and understanding the power/limitations of these devices

- Induction
- Allow us to prove statements that otherwise would be hard to see why they are true

- In this class(es), we will illustrate these two powerful concepts once more

,

q

q’

- Strictly speaking, Transitions have the form:
- :(Q × ( {e}) × ( {e})) (Q × ( {e}))
- (q’,)) ((q, ,))

- :(Q × ( {e}) × ( {e})) (Q × ( {e}))
- We are going to allow to pop and push words in ( {e})*
- Can we represent a transition that pops/pushes words in ( {e})* with transitions that pop/pushes characters in ( {e}) ?
- Careful: order of pushing/popping individual characters matter!
- To avoid confusion, view the stack as a word and push/pop as adding/removing strings prefix from that word

- Construct a pushdown automaton for words in {a,b} such that the number of a’s is twice the number of b’s
- 3 states
- Pushing marker for bottom of stack
- ….

(for each rule C w in R)

(this rule needs to be expanded)

e, C w

e, e

e, e S

e, e

, e

(for each rule terminal in )

Theorem. (Lemma 2.21) Given a context-free grammar CG = (,V,R,S) , then there is a pushdown automaton PA = (Q,,, ,s,F) such that L(CG) = L(PA)

Construction:

q

S 1T11

where 1, 1 are in * and T1 is in ( V)*

12T2 21

12… n n …1

where 2 is in in * and T2 is in ( V)*

…

(always taking the leftmost non terminal)

(s, 12…n n 1, e)

(q, 12…n n 1, S)

(q, 12… n n 1, 1T11)

*

*

*

(q, 2…n n 1, T11)

(Excluded

for simplicity)

(q, 2…n n 1, 2T2 21)

(q, 3… n n 2 1,T2 21)

(taking the leftmost non terminal in T1)

(q, e,e)

Theorem. (Lemma 2.27) Given a pushdown automata PA = (Q,,, ,s,F) then, there exists a context-free grammar CG = (,V,R,S) such that L(PA) = L(CG)

- Assumptions:
- PA has only one accepting state
- Stack is empty when accepting a word
- Each transitions pops XOR pushes one element in the stack

- CG will contain the variables: Apq for every two states p and q in PA
- Apq generates a word w PA empty-process w from p to q
- PA empty-process w from p to q
- w is given as input starting on state p with empty stack
- then PA will nondeterministically process all characters in w
- ending with the empty word in state q and the empty stack

a, e t

b, t e

p

s

r

q

- We are going to construct three kinds of rules for CG:
- Apq aArsb
for all p, q, r, s in Q, all a, b in ( {e}), andall t in such that the following two transitions occur in the PA:

- Apq AprArq
for all p, q, r in Q

- App e
for all p in Q

- Apq aArsb

That’s it!

Can you see it?

If Apq generates a word w then PA empty-process w from p to q

- Proof by induction on # steps in Apq* w
- Basis: # steps is 1
- Induction: holds for k # steps, need to prove for k+1 # steps
- Two sub-cases depending of which rule was applied first:
- Apq aArsb or
- Apq AprArq

- Two sub-cases depending of which rule was applied first:

If PA empty-process w from p to q then Apq generates a word w

- Proof by induction on # steps in processing w
- Basis: # steps is 0
- Induction: holds for k # steps, need to prove for k+1 # steps
- Two sub-cases depending on the following:
- Stack is empty only at the beginning and at the end of process or
- Stack gets empty somewhere in-between

- Two sub-cases depending on the following:

- Let s be the start state in PA
- Let f be the accepting state in PA
- Therefore, Asf is the start variable in CG
- We just proved that:

Asf generates a word w if and only if PA accepts w

- Show that if L1 and L2 are context-free languages then:
- L1 L2 is a context-free language
- L1L2 is a context-free language
(hint: if L1 and L2 are context free, then there is two grammars G1 generating L1 and G2 generating L2. How can you combine G1 and G2 to generate the union and concatenation?)

- 2.19
- 2.23
- 2.27