0% found this document useful (0 votes)
109 views9 pages

Chapter 7 Pushdown Automata

This document provides an overview of pushdown automata (PDA) and context-free languages (CFL). It defines nondeterministic pushdown automata (NPDA) and deterministic pushdown automata (DPDA), and explains that PDAs can recognize CFLs generated by context-free grammars (CFGs). The document also discusses how NPDA and DPDA relate to nondeterministic and deterministic CFLs, and provides examples of designing NPDAs for specific languages.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
109 views9 pages

Chapter 7 Pushdown Automata

This document provides an overview of pushdown automata (PDA) and context-free languages (CFL). It defines nondeterministic pushdown automata (NPDA) and deterministic pushdown automata (DPDA), and explains that PDAs can recognize CFLs generated by context-free grammars (CFGs). The document also discusses how NPDA and DPDA relate to nondeterministic and deterministic CFLs, and provides examples of designing NPDAs for specific languages.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 9

Chapter 7 Pushdown Automata

Nondeterministic Pushdown Automata


PDA and CFL
DPDA and DCFL

CSC 132 Computing Theory 1

Pushdown Automata (PDA)


„ Automata: FA, PDA, TM…
„ Grammar: RG, CFG, CSG …
„ Language: RL, CFL, CSL …
„ PDA is the model of nondeterministic top-
down parser
„ For CFL
„ CFG – generator
„ PDA - recognizer

CSC 132 Computing Theory 2

1
Difference between FA and PDA
„ An informal definition of PDA
„ An input string
„ A read head to exam input once cell at a
time
„ A finite state machine to control moves
„ LIFO push down stack
„ DPDA is not equivalent to NPDA

CSC 132 Computing Theory 3

Memory makes PDA a more


powerful recognizer/accepter

CSC 132 Computing Theory 4

2
Definition 7.1
A nondeterministic pushdown accepter
(npda) is defined by the septuple

„ M = (Q, Σ, Γ, δ, q0, z, F)
„ Q, Σ, δ, q0, and F are the same as they are in FA

„ Γ is a finite set of symbols called the stack alphabet


„ z ∈ Γ is the stack start symbol

„ δ: Q×(Σ → Q ∪ {λ}) × Γ → finite subset of Q × Γ*

CSC 132 Computing Theory 5

Example 7.1
sample NPDA transition rule
„ δ (q1, a, b) = {(q2, cd), (q3, λ)}
„ What does this transition rule mean?
„ Two things can happen when in q1, read
a, and top of the stack is b
1. Move to q2, and the string cd replaces b
2. Move to q3, and pop b

CSC 132 Computing Theory 6

3
NPDA Examples
„ FA → NPDA
„ Every FA can be transformed to a PDA
„ {anbn, n ≥ 0}
„ Can you design an algorithm for this PDA?
„ Example 7.2. L = {anbn, n ≥ 0} ∪ {a}
„ PDA design and implementation
„ Design an algorithm first
„ Present your design in transition function, TG, or in
picture notation (in Cohen book)

CSC 132 Computing Theory 7

Example 7.3
TG for npda in example 7.2

CSC 132 Computing Theory 8

4
The Language Accepted by a
PDA
„ M = (Q, Σ, Γ, δ, q0, z, F)

„ L(M) = {w∈∑*: (q0, w, z) →*M (p, λ, u), p ∈ F, u∈ Γ*}

„ Language accepted by M is the set of all strings that


can put M into a final state at the end of the string.

CSC 132 Computing Theory 9

More examples of NPDA -1


„ DPDA for L = {wXwR } w∈(a+b)*
„ Show picture notation from Cohen
„ NPDA for ODDPALINDROME
„ Show picture …
„ NPDA for EVENPALINDROME
„ Example 7.5 Linz
„ Focus on its algorithm design first!
„ Try to draw the picture

CSC 132 Computing Theory 10

5
More examples of NPDA -2
„ Example 7.4
„ Construct a npda for the language
„ L = {w ∈ {a, b}*: na(w) = nb(w)}
„ Algorithm design for this npda
„ Counter 0 is pushed into stack for each a read
„ Negative counter 1 for counting b’s that are to be
matched against a’s later
„ TG in next slide

CSC 132 Computing Theory 11

TG for na(w) = nb(w)

CSC 132 Computing Theory 12

6
Exercises from Linz 7.1
„ Construct npda’s that accept the
following languages on ∑ = {a, b, c}
„ Exercise #4
„ (c) L = {anbmcn+m: n ≥ 0, m ≥ 0}

„ Try it in class
„ Algorithm first
„ Implementation next

CSC 132 Computing Theory 13

PDA and CFL


„ Theorem 7.1
„ For every CFL, there is an npda M such
that L = L(M)
„ Proof (outline)
„ CFL → CFG in Greibach normal form, G
„ G = (V, T, S, P)
„ M = ({q0, q1, qf}, T, V∪{z}, δ, q0, z, {qf} )
„ See detail steps in the constructive proof on
page 186-187

CSC 132 Computing Theory 14

7
Example 7.6 - 1
Construct a pda that accepts the language
generated by grammar S → aSbb | a

„ Transform to Greibach normal form


„ S → aSA | a
„ A → bB
„ B→b
„ The start symbol S is put on the stack by
„ δ(q0, λ, z) = {(q1, Sz)}
„ S → aSA | a are represented in the PDA by
„ δ(q1, a, S) = {(q1, SA), (q0, λ)}

CSC 132 Computing Theory 15

Example 7.6 - 2

„ In an analogous manner,
„ A → bB gives

„ δ(q1, b, A) = {(q1, B)}


„ B → b gives
„ δ(q1, b, B) = {(q1, λ)}
„ Appearance of z signals the completion and
pda is put into final state
„ δ(q1, λ, z) = {(q2, λ)}

CSC 132 Computing Theory 16

8
CFG for PDA
„ Theorem 7.2
„ If L = L(M) for some npda M, the L is a CFL
„ Proof.
„ A constructive proof to show that it is always possible to
construct a grammar from a npda.
„ This theorem tells us that there always a CFG for
a language represented by a npda.
„ In practice, one may design a CFG directly from
the give CFL

CSC 132 Computing Theory 17

DPDA and DCFL


„ A PDA M is said to be deterministic if it is an
automaton as defined in Definition 7.1 for
NPDA, subject to
„ For any given input symbol and stack top, at most
one move can be made
„ When a λ-move is possible for some configuration,
no input-consuming alternative is available
„ DCFL L – if and only if there exists a dpda M
such that L = L(M)

CSC 132 Computing Theory 18

You might also like