deterministic pdas
play

Deterministic PDAs As mentioned before Pushdown Automata Our - PDF document

Deterministic PDAs As mentioned before Pushdown Automata Our basic PDA in non-deterministic We can define a Deterministic PDA (DPDA) as follows: Determinism Let M = (Q, , , , q 0 , Z 0 , F) be a PDA M is


  1. Deterministic PDAs • As mentioned before Pushdown Automata – Our basic PDA in non-deterministic – We can define a Deterministic PDA (DPDA) as follows: Determinism • Let M = (Q, Σ , Γ , δ , q 0 , Z 0 , F) be a PDA • M is deterministic if: – δ (q, a, X) has at most one element – If δ (q, ε , X) ≠ ∅ then δ (q, a, X) = ∅ for all a ∈ Σ Deterministic PDAs Deterministic PDAs • In other words: • A language L is a deterministic context-free language (DCFL) if there is a DPA that – There is no configuration where the machine accepts L has a “choice” of moves • Each transition has at most 1 element. • If you can make a ε -transition from a state with a given symbol on the stack, – You cannot make that same transition on any tape input symbol. PDA Example PDA Example • Example: • Example: – L = { x ∈ { a, b } * | n a (x) > n b (x) } – L = { x ∈ { a, b } * | n a (x) > n b (x) } – First using a PDA: – The PDA will have 2 states: • Let the stack store the “excess” of one symbol over another – If more a’s have been read than b’s, a’s will be on the stack, and • State 0 (start) : where all the work gets done via versa • State 1 (accepting) : one you’re in here, the machine – If a is on the stack and you read a b, simple match the a with the stops. b. – If a is on the stack and you read an a, we have one more extra a – – The machine can “choose” to go into state 1 on Push it on the stack. a ε transition whenever an a is on the stack. – An empty stack means the number of a’s and b’s are equal.

  2. PDA Example PDA Example • Example: • Let’s try on JFLAP – L = { x ∈ { a, b } * | n a (x) > n b (x) } b, Z 0 / b Z 0 a, Z 0 / a Z 0 ε , a / a q 0 q 1 b, b / bb a, b / ε a, a / aa b, a / ε Non-determinism PDA Example PDA Example Example: • Example: – L = { x ∈ { a, b } * | n a (x) > n b (x) } – L = { x ∈ { a, b } * | n a (x) > n b (x) } – Removing the non-determinism : – The PDA will have 2 states: • Let the stack store 1 minus the “excess” of one • State 0 (start) : when n a (x) ≤ n b (x) symbol over another – Equality or surplus of b’s • The state will determine whether you have excess • State 1 (accepting) : when n a (x) >n b (x) a’s or excess b’s – Surplus of a’s PDA Example PDA Example • Example: • Let’s try on JFLAP – L = { x ∈ { a, b } * | n a (x) > n b (x) } a, a / aa b, Z 0 / b Z 0 a, Z 0 /a Z 0 b, b / bb b, a / ε a, Z 0 / Z 0 a, b / ε q 0 q 1 b, Z 0 / Z 0

  3. Now you might be wondering… It can be shown… We know that all DCFLs are CFLs • That the language pal: – pal = { x ∈ { a, b } * | x = x r } CFL • Cannot be accepted by any DPDA. DCFL Is there anything in here? It can also be shown Now our picture looks like • That all regular languages can be accepted Context Free Languages by a DPDA. Deterministic Context Free Languages – Since an DFA is essentially a DPDA that doesn’t make use of the stack. Regular Languages Finite Languages Why DPDAs are important Determinism vs. Non-Determinism • Comparing FAs and PDAs • A compiler may wish to implement a PDA – DPDAs allow for ε -transitions in software to parse a program given by a – DPDAs allow for no moves given grammar • DPDAs and ambiguity – FAs and NFAs are equivalent – If L can be accepted by a DPDA, then L can be – PDAs and DPDAs are not equivalent expressed by an unambiguous CFG – Not visa versa – Questions – Theorems 6.20 / 6.21 in text

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend