Pushdown Automata A PDA is an FA together with a stack. Stacks A - - PowerPoint PPT Presentation

pushdown automata
SMART_READER_LITE
LIVE PREVIEW

Pushdown Automata A PDA is an FA together with a stack. Stacks A - - PowerPoint PPT Presentation

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


slide-1
SLIDE 1

Pushdown Automata

A PDA is an FA together with a stack.

slide-2
SLIDE 2

Stacks

A stack stores information on the last-in first-

  • ut principle.

Items are added on top by pushing; items are removed from the top by popping.

Goddard 7: 2

slide-3
SLIDE 3

A Pushdown Automaton

A pushdown automaton (PDA) has a fixed set

  • f states (like FA), but it also has one unbounded

stack for storage. When symbol is read, depending on (a) state

  • f 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

slide-4
SLIDE 4

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

slide-5
SLIDE 5

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

slide-6
SLIDE 6

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

  • ne 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

slide-7
SLIDE 7

Flowchart for 0n1n

Start Read Push x Pop Read Pop Accept 1 x 1 ∆ ∆

Goddard 7: 7

slide-8
SLIDE 8

Casualness

There are traditional shapes for the different types

  • f 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

slide-9
SLIDE 9

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

slide-10
SLIDE 10

PDA for Balanced Brackets

In PDA, each ( is pushed; each ) causes a match- ing ( to be popped.

Start Read Push ( Pop Pop Accept ( ) ( ∆ ∆

Goddard 7: 10

slide-11
SLIDE 11

Nondeterminism

By definition, a PDA is nondeterministic. It ac- cepts the input string if there exists a sequence

  • f 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

slide-12
SLIDE 12

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

slide-13
SLIDE 13

Even-Length Palindromes

Start Push 0 Read Push 1 Pop Read Pop Pop Accept 1 ε 1 1 ∆ ∆

Goddard 7: 13

slide-14
SLIDE 14

Another Example

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

Goddard 7: 14

slide-15
SLIDE 15

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 Read Push x Pop Read Pop Accept Pop 1 1 x 1 ∆ ∆ 1 x

Goddard 7: 15

slide-16
SLIDE 16

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. The following PDA actually stores one less than the excess. . .

Goddard 7: 16

slide-17
SLIDE 17

Flowchart for Equality

Start Read Read Push 0 Pop Push 1 Read Pop Accept 1 ∆ 1 1 1 ∆ ∆

Goddard 7: 17

slide-18
SLIDE 18

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: 18

slide-19
SLIDE 19

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: 19

slide-20
SLIDE 20

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: 20

slide-21
SLIDE 21

Solutions to Practice

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

Goddard 7: 21

slide-22
SLIDE 22

Start Read Push x Pop Read Push y Read Read Pop Pop Accept 1 x 1 ∆ 1 y ∆ ∆ ∆

Goddard 7: 22

slide-23
SLIDE 23

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: 23