PDA to CFG
description
Transcript of PDA to CFG
PDA to CFG
Toqa Manasrah
Example• Convert the PDA P={{p,q}, {0,1}, {X,Z}, q, Z, { }, δ} to a
CFG if δ is given by:
1. δ(q,1,Z)={(q,XZ)}2. δ(q,1,X)={(q,XX)}3. δ(q,0,X)={(q,X)}4. δ(p,0,Z)={(q,Z)}5. δ(q,Λ,X)={(q, Λ)}6. δ(p,1,X)={(p, Λ)}
2 stack symbols
1 stack symbols
0 stack symbols
States Q: q,p
Stack symbols:
x,z
inputs: 0,1
Each stack
symbol one path
Initial production S for each variable
S [q0z0q]S [q0z0p]
Step 1
Variables: q,p
(q,a,Z) = (p,X)
q
p
q
p
?
a, Z X
a, Z X
process X
consume apop Zpush Xmove to state p
X not yet processed
consume apop Zpush Xmove to state p
Since we don’t know which state the PDA will be in after
processing X, define a production [qZr] a[pXr] that ends in each possible
state r
Step 2
Λ transition
5. δ (q Λ x ) = {( q , Λ )} [ q x q ] Λ
6. δ( p , 1 , x ) = {( p, Λ )}[ p x p ] 1
Pop x, consume Λ
Pop x, consume 1
Step 3
Regular transition
3. δ(q,0,X)={(q,X)}[ q x r ]0[ p x r ]
[ q x q ]0[ p x q ] [ q x p ]0[ p x p ]
r = all states in Q
Pop x, consume 0, push x
Step 3
Regular transition
4. δ(p,0,Z)={(q,Z)}[ p z r ]0[ q z r ]
[ p z q ]0[ q z q ] [ p z p ]0[ q z p ]
r = p orr = q
Step 3Regular transition
1. δ(q,1,Z)={(q,XZ)} [qzr]1[qxk][kzr]
[qzq]1[qxq][qzq][qzq]1[qxp][pzq][qzp]1[qxq][qzp][qzp]1[qxp][pzp]
[qzq]1[qxk][kzq]
[qzp]1[qxk][kzp]
Pop z, consume 1, move to state q, push x, mover to k,
push z, move to r
Step 3Regular transition
1. δ(q,1,X)={(q,XX)} [qxr]1[qxk][kxr]
[qxq]1[qxq][qxq][qxq]1[qxp][pxq][qxp]1[qxq][qxp][qxp]1[qxp][pxp]
[qzq]1[qxk][kxq]
[qzp]1[qxk][kxp]
[qzq]1[qxq][qzq][qzq]1[qxp][pzq][qzp]1[qxq][qzp][qzp]1[qxp][pzp]
[qxq]1[qxq][qxq][qxq]1[qxp][pxq][qxp]1[qxq][qxp][qxp]1[qxp][pxp]
S [q0z0q]S [q0z0p]
[ q x q ]0[ p x q ] [ q x p ]0[ p x p ]
[ p z q ]0[ q z q ]
[ p z p ]0[ q z p ]
[ q x q ] Λ[ p x p ] 1