Professional Documents
Culture Documents
Context-Free Languages
Context-Free Languages
Languages Accepted by
(Grammars) PDAs
Context-Free Languages
Languages Accepted by
(Grammars) PDAs
Context-Free Languages
Languages Accepted by
(Grammars) PDAs
Context-Free Grammars
to
PDAs
Production in G Terminal in G
Aw a
, A w a, a
q0 , S q1 , $ $ q2
Fall 2004 Costas Busch - RPI 8
Grammar PDA computation
Simulates grammar
leftmost
leftmost derivations
derivation
(q0 , 1 k k 1 n ,$)
S (q1 , 1 k k 1 n , S $)
1 k X 1 X m (q1 , k 1 n , X 1 X m $)
1 k k 1 n (q2 , ,$)
Leftmost
variable
Fall 2004 Costas Busch - RPI 9
Example
Grammar
S aSTb
S b PDA
T Ta , S aSTb
T , S b
, T Ta a, a
, T b, b
q0 , S q1 , $ $ q2
Fall 2004 Costas Busch - RPI 10
Grammar PDA computation
derivation
(q0 , abab,$)
S (q1 , abab, S $)
aSTb (q1 , bab, STb$)
(q1 , bab, bTb$)
abTb
(q1 , ab, Tb$)
abTab (q1 , ab, Tab $)
abab (q1 , ab, ab$)
(q1 , b, b$)
(q1 , ,$)
(q2 , ,$)
Input a b a b
, S aSTb $
Time 0
, S b Stack
, T Ta a, a
, T b, b
, S , $ $
q0 q1 q2
Fall 2004 Costas Busch - RPI 12
Derivation: S
Input a b a b
S
, S aSTb $
Time 0
, S b Stack
, T Ta a, a
, T b, b
q0 , S q1 , $ $ q2
Fall 2004 Costas Busch - RPI 13
Derivation: S aSTb a
S
Input a b a b
T
b
, S aSTb $
Time 1
, S b Stack
, T Ta a, a
, T b, b
q0 , S q1 , $ $ q2
Fall 2004 Costas Busch - RPI 14
Derivation: S aSTb a
S
Input a b a b
T
b
, S aSTb $
Time 2
, S b Stack
, T Ta a, a
, T b, b
q0 , S q1 , $ $ q2
Fall 2004 Costas Busch - RPI 15
Derivation: S aSTb abTb
b
Input a b a b
T
b
, S aSTb $
Time 3
, S b Stack
, T Ta a, a
, T b, b
q0 , S q1 , $ $ q2
Fall 2004 Costas Busch - RPI 16
Derivation: S aSTb abTb
b
Input a b a b
T
b
, S aSTb $
Time 4
, S b Stack
, T Ta a, a
, T b, b
q0 , S q1 , $ $ q2
Fall 2004 Costas Busch - RPI 17
Derivation: S aSTb abTb abTab
T
Input a b a b a
b
, S aSTb $
Time 5
, S b Stack
, T Ta a, a
, T b, b
q0 , S q1 , $ $ q2
Fall 2004 Costas Busch - RPI 18
Derivation: S aSTb abTb abTab abab
T
Input a b a b a
b
, S aSTb $
Time 6
, S b Stack
, T Ta a, a
, T b, b
q0 , S q1 , $ $ q2
Fall 2004 Costas Busch - RPI 19
Derivation: S aSTb abTb abTab abab
Input a b a b a
b
, S aSTb $
Time 7
, S b Stack
, T Ta a, a
, T b, b
q0 , S q1 , $ $ q2
Fall 2004 Costas Busch - RPI 20
Derivation: S aSTb abTb abTab abab
Input a b a b
b
, S aSTb $
Time 8
, S b Stack
, T Ta a, a
, T b, b
q0 , S q1 , $ $ q2
Fall 2004 Costas Busch - RPI 21
Derivation: S aSTb abTb abTab abab
Input a b a b
, S aSTb $
Time 9
, S b Stack
, T Ta a, a
, T b, b
accept
q0 , S q1 , $ $ q2
Fall 2004 Costas Busch - RPI 22
In general, it can be shown that:
Grammar G
generates PDA M
If and accepts w
string w
Only if
* (q0 , w,$) (q2 , ,$)
Sw
Therefore L(G ) L( M )
Fall 2004 Costas Busch - RPI 23
Therefore:
Context-Free Languages
Languages Accepted by
(Grammars) PDAs
PDAs
to
Context-Free Grammars
G simulates computations of M
with leftmost derivations
Stack
a
$ $
OK OK NOT OK
a
$ $
a
$ $
# # #
Fall 2004 Costas Busch - RPI 30
At the beginning insert # into the stack
Original PDA
new
initial state
,$ $#
original
initial state
Fall 2004 Costas Busch - RPI 31
Convert all transitions so that
after popping $ the automaton halts
pop $ , s q
qi j
x {# }
pop $ qi
, x x , s qj
,
#
#
halting state
Fall 2004 Costas Busch - RPI 32
2. Modify the PDA so that at end
it empties stack and
has a unique accept state
Empty stack
PDA x {# }
, , x
,
, # q
f
, New
accept
Old accept states state
Fall 2004 Costas Busch - RPI 33
3. Modify the PDA so that it has no
transitions popping :
, y
qi qj
, y
qi qj
{# }
Fall 2004 Costas Busch - RPI 34
Example of a PDA in correct form:
(modifications are not necessary)
L( M ) {w {a, b} : na ( w) nb ( w)}
*
a, $ 0$ b, $ 1$
a, 0 00 b, 1 11
a, 1 b, 0
, $ qf
q0
Fall 2004 Costas Busch - RPI 35
Grammar Construction
In grammar G:
Variables: A PDA stack symbols
Leftmost
variable
Fall 2004 Costas Busch - RPI 39
Example PDA:
a, $ 0$ b, $ 1$
a, 0 00 b, 1 11
a, 1 b, 0
, $ qf
q0
Grammar: $ a 0$ $ b1$
0 a 00 1 b11
1 a 0b $
Fall 2004 Costas Busch - RPI 40
Grammar
PDA
Leftmost
Computation:
derivation:
$ (q0 , abba,$)
a 0$ (q0 , bba,0$)
ab$ (q0 , ba,$)
abb1$ (q0 , a,1$)
abba$ (q0 , ,$)
abba (q f , , )
Fall 2004 Costas Busch - RPI 41
Derivation: $
a b b a Time 0
a, $ 0$ b, $ 1$
a, 0 00 b, 1 11
a, 1 b, 0
, $ qf
q0
Fall 2004 Costas Busch - RPI 42
Derivation: $ a 0$
a b b a Time 1
0
a, $ 0$ b, $ 1$
$
a, 0 00 b, 1 11
a, 1 b, 0 Stack
, $ qf
q0
Fall 2004 Costas Busch - RPI 43
Derivation: $ a0$ ab$
a b b a Time 2
a, $ 0$ b, $ 1$
$
a, 0 00 b, 1 11
a, 1 b, 0 Stack
, $ qf
q0
Fall 2004 Costas Busch - RPI 44
Derivation: $ a0$ ab$ abb1$
a b b a Time 3
1
a, $ 0$ b, $ 1$
$
a, 0 00 b, 1 11
a, 1 b, 0 Stack
, $ qf
q0
Fall 2004 Costas Busch - RPI 45
Derivation: $ a0$ ab$ abb1$
abba$
a b b a Time 4
a, $ 0$ b, $ 1$
$
a, 0 00 b, 1 11
a, 1 b, 0 Stack
, $ qf
q0
Fall 2004 Costas Busch - RPI 46
Derivation: $ a0$ ab$ abb1$
abba$ abba
a b b a Time 5
a, $ 0$ b, $ 1$ empty
a, 0 00 b, 1 11
a, 1 b, 0 Stack
, $ qf
q0
Fall 2004 Costas Busch - RPI 47
However, this grammar conversion
does not work for all PDAs:
a, $ A$
a, A A$ b, A
q0
b, A , $ qf
q1
L( M ) {a b : n 1}
n n
q0
b, A , $ qf
q1
Grammar:
$ aA$ A aA$
$ Ab
Grammar:
$ aA$ A aA$
$ Ab
In grammar G :
PDA stack symbol
Variables: (qi Aq j )
PDA states
Grammar production
(qAqm ) a (q1 B1q2 )(q2 B2 q3 ) (qm Bm qm 1 )
, $ qf
q0
, $ qf
q0
Grammar productions:
(q0 $q0 ) b(q01q0 )(q0 $q0 ) | b(q01q f )(q f $q0 )
(q0 $q f ) b( q01q0 )(q0 $q f ) | b(q01q f )(q f $q f )
Fall 2004 Costas Busch - RPI 56
Example:
a, $ 0$ b, $ 1$
a, 0 00 b, 1 11
a, 1 b, 0
, $ qf
q0
Grammar production: ( q0 $q f )
(q01q0 ) a
(q0 0q0 ) b
(q0 $q f )
a b b a Time 0
a, $ 0$ b, $ 1$
a, 0 00 b, 1 11
a, 1 b, 0
, $ qf
q0
Fall 2004 Costas Busch - RPI 61
Derivation: (q0 $q f ) a (q0 0q0 )(q0 $q f )
a b b a Time 1
0
a, $ 0$ b, $ 1$
$
a, 0 00 b, 1 11
a, 1 b, 0 Stack
, $ qf
q0
Fall 2004 Costas Busch - RPI 62
Derivation: (q0 $q f ) a (q0 0q0 )(q0 $q f ) ab(q0 $q f )
a b b a Time 2
a, $ 0$ b, $ 1$
$
a, 0 00 b, 1 11
a, 1 b, 0 Stack
, $ qf
q0
Fall 2004 Costas Busch - RPI 63
Derivation: (q0 $q f ) a (q0 0q0 )(q0 $q f ) ab(q0 $q f )
abb(q01q0 )(q0 $q f )
a b b a Time 3
1
a, $ 0$ b, $ 1$
$
a, 0 00 b, 1 11
a, 1 b, 0 Stack
, $ qf
q0
Fall 2004 Costas Busch - RPI 64
Derivation: (q0 $q f ) a (q0 0q0 )(q0 $q f ) ab(q0 $q f )
abb(q01q0 )(q0 $q f ) abba(q0 $q f )
a b b a Time 4
a, $ 0$ b, $ 1$
$
a, 0 00 b, 1 11
a, 1 b, 0 Stack
, $ qf
q0
Fall 2004 Costas Busch - RPI 65
Derivation: (q0 $q f ) a (q0 0q0 )(q0 $q f ) ab(q0 $q f )
abb(q01q0 )(q0 $q f ) abba(q0 $q f ) abba
a b b a Time 5
a, $ 0$ b, $ 1$ empty
a, 0 00 b, 1 11
a, 1 b, 0 Stack
, $ qf
q0
Fall 2004 Costas Busch - RPI 66
In general:
Grammar
PDA
If and
(qi Aq j ) wB Only if (qi , w, A) (q j , , B )
Grammar
generates w PDA accepts w
If and
Only if (q0 , w,$) (q f , , )
( q0 $ q f ) w
Context-Free Languages
Languages Accepted by
(Grammars) PDAs