1 / 13

Equivalence of Pushdown Automata and Context-Free Grammar

Equivalence of Pushdown Automata and Context-Free Grammar. Prof. H é ctor Mu ñ oz-Avila. Two Crucial Concepts. Nondeterministic computation Give us flexibility for constructing devices and understanding the power/limitations of these devices Induction

antonie
Télécharger la présentation

Equivalence of Pushdown Automata and Context-Free Grammar

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. Equivalence of Pushdown Automata and Context-Free Grammar Prof. Héctor Muñoz-Avila

  2. Two Crucial Concepts • 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

  3. ,    q q’ Class Convention regarding Transitions in Pushdown Automata • Strictly speaking, Transitions have the form: • :(Q × (  {e}) × (  {e})) (Q × (  {e})) • (q’,))  ((q, ,)) • 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

  4. My Solution of the Homework • 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 • ….

  5. (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 ) Equivalence of Pushdown Automata and Context-Free Grammars (part I) 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

  6. S  1T11 where 1, 1 are in * and T1 is in (  V)*  12T2 21  12… n n …1 where 2 is in in * and T2 is in (  V)* … (always taking the leftmost non terminal) (s, 12…n n 1, e) (q, 12…n n 1, S)   (q, 12… n n 1, 1T11)    * * * (q, 2…n n 1, T11)  (Excluded for simplicity) (q, 2…n n 1, 2T2 21) (q, 3… n n 2 1,T2 21) Sketch of the Proof (taking the leftmost non terminal in T1) (q, e,e)

  7. Equivalence of Pushdown Automata and Context-Free Grammars (Part II) 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

  8. Constructing the Grammar CG (1) • 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

  9. a, e  t b, t  e p s r q Constructing the Grammar CG (2) • 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 That’s it! Can you see it?

  10. Proving that CG is equivalent to PA (1) 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

  11. Proving that CG is equivalent to PA (2) 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

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

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

More Related