CFG => PDA
description
Transcript of CFG => PDA
CFG => PDA
Sipser 2 (pages 99-118)
CS 311Fall 2008 2
Formally…• A pushdown automaton is a sextuple
M = (Q, Σ, Γ, δ, q0, F), where – Q is a finite set of states– Σ is a finite alphabet (the input symbols)– Γ is a finite alphabet (the stack symbols)– δ: (Q × Σε ×Γε) → P(Q × Γε)
is the transition function– q0 Q ∈ is the initial state, and – F Q⊆ is the set of accept states
CS 311Fall 2008 3
Balanced brackets• Let M = (Q, Σ, Γ, δ, q0, F), where – Q = {q1, q2, q3}– Σ = {[, ]}– Γ = {[, $}– q0 = q1
– F = {q1, q3}– δ is given by the transition diagram:
CS 311Fall 2008 4
Finite automata and Pushdown automata
? Pushdown languages
Regular languages
CS 311Fall 2008 5
Regular => Pushdown• Proposition: Every finite automaton
can be viewed as a pushdown automaton that never operates on its stack.
• Proof: Let M = (Q, Σ, δ, q0, F) be a finite automaton. Define M' = (Q, Σ, Γ, δ', q0, F), where…
CS 311Fall 2008 6
Finite automata and Pushdown automata
? Pushdown languages
Regular languages
CS 311Fall 2008 7
Pushdown automata are nondeterministic
• Build a machine to recognize PAL = {wwR | w {0, 1}*} ∈
0 1 0 1 1 0 1 0
0
1
0Finite control
$
stackor
pushdownstore
reading head 1
CS 311Fall 2008 8
Recognizing context-free languages
• Lemma 2.21: If a language is context-free, then some pushdown automaton recognizes it.
• Proof:
CS 311Fall 2008 9
Shorthand for…
CS 311Fall 2008 10
For example…• Let’s use this construction on:• G = (V, Σ, R, S), where
V = {S}Σ = {[, ]}R = { S →G ε,
S →G SS, S →G [S]}