Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
5 views22 pages

Push Down Automata

Uploaded by

warowaw625
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)
5 views22 pages

Push Down Automata

Uploaded by

warowaw625
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/ 22

Pushdown Automata

A PDA is an FA together with a stack.


Stacks

A stack stores information on the last-in first-


out principle.

Items are added on top by pushing; items are


removed from the top by popping.

Goddard 7: 2
A Pushdown Automaton

A pushdown automaton (PDA) has a fixed set


of states (like FA), but it also has one unbounded
stack for storage.

When symbol is read, depending on (a) state


of automaton, (b) symbol on top of stack, and
(c) symbol read, the automaton

1. updates its state, and


2. (optionally) pops or pushes a symbol.

The automaton may also pop or push without


reading input.
Goddard 7: 3
Flowcharts

We draw the program of a PDA as a flowchart


(we will see FA-like diagram later). This uses:

• A single start state;


• A single halt-and-accept state;
• A reader box: read one symbol from input
and based on that update state (as in FA);
• A pop box: pop one symbol from stack and
based on that update state;
• A push box: add symbol to stack.

Goddard 7: 4
Notes

There is no explicit reject state: if no legal con-


tinuation, then PDA halts and rejects.

We use symbol ∆ to indicate both the end of


input, and the result of popping from an empty
stack.

Goddard 7: 5
Example: 0n1n Again

Consider a PDA for { 0n1n : n > 0 }. The PDA


uses its stack as counter.

For each 0 read, PDA pushes an x (say). When


first 1 read, PDA enters new state. Now, it pops
one symbol for each 1 read. If now 0 is read or
pop from empty stack, it rejects. PDA accepts
if and only if stack becomes empty as the input
finishes. . .

Goddard 7: 6
Flowchart for 0n1n

Start

Push x Read
0 Accept
1
1 ∆
x ∆
Pop Read Pop

Goddard 7: 7
Casualness

There are traditional shapes for the different types


of functions on flowcharts, but we don’t worry
about that.

Also, ε often requires very special handling: from


now on, however, we will simply ignore the empty
string.

Goddard 7: 8
Balanced Brackets

A string of left and right brackets is balanced


if (a) reading from left to right, number of left
brackets is always at least number of right brack-
ets; and (b) total number of left brackets equals
total number of right brackets.

For example, (()())() is balanced;


(() and )))( are not.

Here is CFG:

S → (S) | SS | ε

Goddard 7: 9
PDA for Balanced Brackets

In PDA, each ( is pushed; each ) causes a match-


ing ( to be popped.
Start

∆ ∆
Push ( Read Pop Accept
(
)
(
Pop

Goddard 7: 10
Nondeterminism

By definition, a PDA is nondeterministic. It ac-


cepts the input string if there exists a sequence
of actions leading to the accept state.

There are two ways to depict nondeterminism


in the flowchart: two transitions with the same
label, or a transition labeled with ε (which does
not consume an input symbol).

Goddard 7: 11
PDA for Palindromes

The PDA for palindromes uses nondeterminism


to guess the midpoint of the string; and the
stack to compare the first and second halves.

Here is the PDA for even-length palindromes. . .

Goddard 7: 12
Even-Length Palindromes
Start

0 1
Push 0 Read Push 1

0 1

0 1
Pop Read Pop


Pop Accept

Goddard 7: 13
Another Example

Consider the language { 0m1n : n ≤ m ≤ 2n }.


The PDA starts by counting the 0’s, say using x.
Then matches each 1 with either one or two x’s.
Start

0
Push x Read
Accept
1
1
1 ∆
x x ∆
Pop Pop Read Pop

1
Goddard 7: 14
PDA for Equality

Here is PDA for all binary strings with equal 0’s


and 1’s.

The PDA again uses stack as counter. Several


approaches. One idea is to pair symbols off,
storing the excess on the stack. This PDA ac-
tually stores one less than the excess. . .

Goddard 7: 15
Flowchart for Equality

Start
Push 0 Push 1

0 1
0 1
Read Read Read
1 0
∆ ∆
0 1

Pop Pop
Accept

Goddard 7: 16
Context-Free Languages

Theorem. A language is generated by a


context-free grammar if and only if it is accepted
by a pushdown automaton.

We prove this later.

Goddard 7: 17
Applications of PDAs: Reverse Polish

A compiler converts an arithmetic expression


into code that can be evaluated using a stack.

For example,
1 + 5 ∗ (3 + 2) + 4
might become

PUSH (1) PUSH (5) PUSH (3) PUSH (2) ADD MUL
ADD PUSH (4) ADD

Goddard 7: 18
Practice

1. Draw a PDA for the set of all strings of the


form 0a1b such that a ≥ b.
2. Draw a PDA for the set of all strings of the
form 0a1b0c such that a + c = b.

Goddard 7: 19
Solutions to Practice

Start

Push x Read
0 Accept
1
1 ∆, x
x ∆
Pop Read Pop

Goddard 7: 20
Start

Push x Read
0
1
1
x
Pop Read


1

Push y Read
Accept
0
0

Pop Read y Pop

Goddard 7: 21
Summary

A pushdown automaton (PDA) is an FA with a


stack added for storage. We choose to draw
these as flowcharts where the character ∆ in-
dicates both empty stack and end-of-input. A
PDA is nondeterministic by definition.

Goddard 7: 22

You might also like