Lecture 10 CFG Pda 2
Lecture 10 CFG Pda 2
Lecture 10 CFG Pda 2
Lecture 10
CFG & PDA (Cont’d)
1
Syllabus and Terminologies
5/31/2024 FCI-CU-EG 2
The States
q1 a, b c q2
PDA M: L( M ) {a b : n 0} n n
a, a b, a
q0 , q1 b, a q2 , $ $ q3
Fall 2006 Costas Busch - RPI 4
Basic Idea: L( M ) {a b : n 0}
n n
a, a b, a
q0 , q1 b, a q2 , $ $ q3
Fall 2006 Costas Busch - RPI 5
Execution Example: Time 0
Input
a a a b b b
$
Stack
current a, a b, a
state
q0 , q b, a q , $ $ q
1 2 3
Fall 2006 Costas Busch - RPI 6
Time 1
Input
a a a b b b
$
Stack
a, a b, a
q0 , q1 b, a q2 , $ $ q3
Fall 2006 Costas Busch - RPI 7
Time 2
Input
a a a b b b a
$
Stack
a, a b, a
q0 , q1 b, a q2 , $ $ q3
Fall 2006 Costas Busch - RPI 8
Time 3
Input
a
a a a b b b a
$
Stack
a, a b, a
q0 , q1 b, a q2 , $ $ q3
Fall 2006 Costas Busch - RPI 9
Time 4
Input
a
a
a a a b b b a
$
Stack
a, a b, a
q0 , q1 b, a q2 , $ $ q3
Fall 2006 Costas Busch - RPI 10
Time 5
a
Input
a
a a a b b b a
$
Stack
a, a b, a
q0 , q1 b, a q2 , $ $ q3
Fall 2006 Costas Busch - RPI 11
Time 6
Input
a
a a a b b b a
$
Stack
a, a b, a
q0 , q1 b, a q2 , $ $ q3
Fall 2006 Costas Busch - RPI 12
Time 7
Input
a a a b b b a
$
Stack
a, a b, a
q0 , q1 b, a q2 , $ $ q3
Fall 2006 Costas Busch - RPI 13
Time 8
Input
a a a b b b
$
Stack
a, a b, a
accept
q0 , q1 b, a q2 , $ $ q3
Fall 2006 Costas Busch - RPI 14
Rejection Example: Time 0
Input
a a b
$
Stack
current a, a b, a
state
q0 , q b, a q , $ $ q
1 2 3
Fall 2006 Costas Busch - RPI 15
Rejection Example: Time 1
Input
a a b
$
Stack
current a, a b, a
state
q0 , q1 b, a q2 , $ $ q3
Fall 2006 Costas Busch - RPI 16
Rejection Example: Time 2
Input
a
a a b
$
Stack
current a, a b, a
state
q0 , q1 b, a q2 , $ $ q3
Fall 2006 Costas Busch - RPI 17
Rejection Example: Time 3
Input a
a
a a b
$
Stack
current a, a b, a
state
q0 , q1 b, a q2 , $ $ q3
Fall 2006 Costas Busch - RPI 18
Rejection Example: Time 4
Input a
a
a a b
$
Stack
current a, a b, a
state
q0 , q1 b, a q2 , $ $ q3
Fall 2006 Costas Busch - RPI 19
Rejection Example: Time 4
Input a
a
a a b
$
Stack
reject
current a, a b, a
state
q0 , q1 b, a q2 , $ $ q3
Fall 2006 Costas Busch - RPI 20
There is no accepting computation for aab
a, a b, a
q0 , q1 b, a q2 , $ $ q3
Fall 2006 Costas Busch - RPI 21
Palindromes with stack checking
PDA M: L( M ) {vv : v {a, b} } R
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
Fall 2006 Costas Busch - RPI 22
Basic Idea: L( M ) {vv : v {a, b} } R
R
1. Push v v
3. Match on input
2. Guess with v on stack
on stack middle
of input
a, a a, a 4. Match
found
b, b b, b
q0 , q1 , $ $ q2
Fall 2006 Costas Busch - RPI 23
Execution Example: Time 0
Input
a b b a
$
Stack
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
Fall 2006 Costas Busch - RPI 24
Time 1
Input
a b b a
a
$
Stack
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
Fall 2006 Costas Busch - RPI 25
Time 2
Input
b
a b b a
a
$
Stack
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
Fall 2006 Costas Busch - RPI 26
Time 3
Input
b
a b b a
Guess the middle a
of string
$
Stack
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
Fall 2006 Costas Busch - RPI 27
Time 4
Input
b
a b b a
a
$
Stack
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
Fall 2006 Costas Busch - RPI 28
Time 5
Input
a b b a
a
$
Stack
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
Fall 2006 Costas Busch - RPI 29
Time 6
Input
a b b a
$
Stack
a, a a, a
b, b b, b
accept
q0 , q1 , $ $ q2
Fall 2006 Costas Busch - RPI 30
Rejection Example: Time 0
Input
a b b b
$
Stack
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
Fall 2006 Costas Busch - RPI 31
Time 1
Input
a b b b a
$
Stack
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
Fall 2006 Costas Busch - RPI 32
Time 2
Input
b
a b b b a
$
Stack
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
Fall 2006 Costas Busch - RPI 33
Time 3
Input
b
a b b b
Guess the middle a
of string
$
Stack
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
Fall 2006 Costas Busch - RPI 34
Time 4
Input
b
a b b b a
$
Stack
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
Fall 2006 Costas Busch - RPI 35
Time 5
q0 , q1 , $ $ q2
Fall 2006 Costas Busch - RPI 36
Another computation on same string:
Input Time 0
a b b b
$
Stack
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
Fall 2006 Costas Busch - RPI 37
Time 1
Input
a b b b a
$
Stack
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
Fall 2006 Costas Busch - RPI 38
Time 2
Input
b
a b b b a
$
Stack
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
Fall 2006 Costas Busch - RPI 39
Time 3
Input b
b
a b b b a
$
Stack
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
Fall 2006 Costas Busch - RPI 40
Time 4 b
Input b
b
a b b b a
$
Stack
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
Fall 2006 Costas Busch - RPI 41
Time 5 b
Input b
No accept state
is reached b
a b b b a
$
Stack
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
Fall 2006 Costas Busch - RPI 42
There is no computation
that accepts stringabbb
abbb L(M )
a, a a, a
b, b b, b
q0 , q1 , $ $ q2
Fall 2006 Costas Busch - RPI 43
Another PDA example
L( M ) {w {a, b} : na ( w) nb ( w)}*
PDA M
a, $ 0$ b, $ 1$
a, 0 00 b, 1 11
a, 1 b, 0
q1 , $ $ q2
Fall 2006 Costas Busch - RPI 44
Execution Example: Time 0
Input
a b b b a a
$
a, $ 0$ b, $ 1$ Stack
a, 0 00 b, 1 11
a, 1 b, 0
current
state
q1 , $ $ q2
Fall 2006 Costas Busch - RPI 45
Time 1
Input
a b b b a a
0
$
a, $ 0$ b, $ 1$ Stack
a, 0 00 b, 1 11
a, 1 b, 0
q1 , $ $ q2
Fall 2006 Costas Busch - RPI 46
Time 3
Input
a b b b a a
0
$
a, $ 0$ b, $ 1$ Stack
a, 0 00 b, 1 11
a, 1 b, 0
q1 , $ $ q2
Fall 2006 Costas Busch - RPI 47
Time 4
Input
a b b b a a
1
$
a, $ 0$ b, $ 1$ Stack
a, 0 00 b, 1 11
a, 1 b, 0
q1 , $ $ q2
Fall 2006 Costas Busch - RPI 48
Time 5
Input
a b b b a a 1
1
$
a, $ 0$ b, $ 1$ Stack
a, 0 00 b, 1 11
a, 1 b, 0
q1 , $ $ q2
Fall 2006 Costas Busch - RPI 49
Time 6
Input
a b b b a a 1
1
$
a, $ 0$ b, $ 1$ Stack
a, 0 00 b, 1 11
a, 1 b, 0
q1 , $ $ q2
Fall 2006 Costas Busch - RPI 50
Time 7
Input
a b b b a a
1
$
a, $ 0$ b, $ 1$ Stack
a, 0 00 b, 1 11
a, 1 b, 0
q1 , $ $ q2
Fall 2006 Costas Busch - RPI 51
Time 8
Input
a b b b a a
$
a, $ 0$ b, $ 1$ Stack
a, 0 00 b, 1 11
a, 1 b, 0
accept
q1 , $ $ q2
Fall 2006 Costas Busch - RPI 52
Formal Definition
Pushdown Automaton (PDA)
M (Q, Σ, Γ, δ, q0 , z , F ) Accept
states
States
Input
Stack
alphabet
start
Transition Initial symbol
Stack function state
alphabet
Costas Busch - RPI 53
Types of PDA Transitions
54
Types of PDA Transitions
55
a , w1 w2
q1 q2
Transition function:
q1
a , w1 w3 q3
Transition function:
Goal: (acceptance)
Read the entire input string
Terminate with an empty stack
Informally, a string is accepted if there exists a computation that uses up all the input
and leaves the stack empty.
58
0011
• (q1, 0 011, #) |-
(q1, 0 11, L#) |-
(q1, 1 1, LL#) |-
(q2, 1, L#) |-
(q2, e, #) |-
(q2, e, e): accept
• 011
• (q1, 0 11, #) |-
(q1, 1 1, L#) |-
(q2, 1, #) |-
Ø : reject
59
Example: balanced parentheses,
e.g. in-language: ((())()), or (())(), but not-in-language: ((())
Goal: (acceptance)
Read the entire input string
Terminate with an empty stack
60
Example PDA #2: For the language {x | x = wwr and w in {0,1}*}
Note: length |x| is even
M = ({q1, q2}, {0, 1}, {#, B, G}, δ, q1, #, Ø)
δ:
(1) δ(q1, 0, #) = {(q1, B#)}
(2) δ(q1, 1, #) = {(q1, G#)}
(3) δ(q1, 0, B) = {(q1, BB), (q2, ε)} (6) δ(q1, 1, G) = {(q1, GG), (q2, ε)}
(4) δ(q1, 0, G) = {(q1, BG)} (7) δ(q2, 0, B) = {(q2, ε)}
(5) δ(q1, 1, B) = {(q1, GB)} (8) δ(q2, 1, G) = {(q2, ε)}
(9) δ(q1, ε, #) = {(q2, #)}
(10) δ(q2, ε, #) = {(q2, ε)}
Notes:
Rules #3 and #6 are non-deterministic: two options each
Rules #9 and #10 are used to pop the final stack symbol off at the end of a computation.
61
Example Computation:
(1) δ(q1, 0, #) = {(q1, B#)} (6) δ(q1, 1, G) = {(q1, GG), (q2, ε)}
(2) δ(q1, 1, #) = {(q1, G#)} (7) δ(q2, 0, B) = {(q2, ε)}
(3) δ(q1, 0, B) = {(q1, BB), (q2, ε)} (8) δ(q2, 1, G) = {(q2, ε)}
(4) δ(q1, 0, G) = {(q1, BG)} (9) δ(q1, ε, #) = {(q2, ε)}
(5) δ(q1, 1, B) = {(q1, GB)} (10) δ(q2, ε, #) = {(q2, ε)}
62
Instantaneous Description
( q, u , s )
Current Current
state Remaining stack
input contents
At any time ti
q0 , q1 b, a q2 , $ $ q3
Fall 2006 Costas Busch - RPI 64
Example: Instantaneous Description
q0 , q1 b, a q2 , $ $ q3
Fall 2006 Costas Busch - RPI 65
We write:
a, a b, a
q0 , q1 b, a q2 , $ $ q3
Fall 2006 Costas Busch - RPI 67
(q0 , aaabbb,$) (q1, aaabbb,$)
(q1, aabbb, a$) (q1, abbb, aa$) (q1, bbb, aaa$)
(q2 , bb, aa$) (q2 , b, a$) (q2 , ,$) (q3 , ,$)
(q0 , aaabbb,$) (q3 , ,$)
L( M ) {w : (q0 , w, z ) (q f , , z )}
aaabbb L(M )
PDA M:
a, a b, a
q0 , q1 b, a q2 , $ $ q3
Fall 2006 Costas Busch - RPI 70
(q0 , a b ,$) (q3 , ,$)
n n
a b L(M )
n n
PDA M:
a, a b, a
q0 , q1 b, a q2 , $ $ q3
Fall 2006 Costas Busch - RPI 71
Therefore:
L( M ) {a b : n 0} n n
PDA M :
a, a b, a
q0 , q1 b, a q2 , $ $ q3
Fall 2006 Costas Busch - RPI 72
PDA versus CFLs
Context-Free
Languages
(Grammars)
Languages
Accepted by
PDAs
Context-Free
Languages
(Grammars)
Languages
Accepted by
PDAs
L(G ) L( M )
Context-Free
Languages
(Grammars)
Languages
Accepted by
PDAs
L(G ) L( M )
Convert
Context-Free Grammars
to
PDAs
L(G ) L( M )
, A w a, a
q0 , S q1 , $ $ q2
Fall 2006 Costas Busch - RPI 79
Grammar
Example
S aSTb
S b , S aSTb
T Ta , S b PDA
T , T Ta a, a
, T b, b
q0 , S q1 , $ $ q2
Fall 2006 Costas Busch - RPI 80
Sample Run:
Input a b a b
, S aSTb $
Time 0
, S b Stack
, T Ta a, a
, T b, b
, S , $ $
q0
Fall 2006
q1
Costas Busch - RPI
q2 81
Derivation: S
Input a b a b
S
, S aSTb $
Time 1
, S b Stack
, T Ta a, a
, T b, b
q0 , S q1 , $ $ q2
Fall 2006 Costas Busch - RPI 82
Derivation: S aSTb a
Input S
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 2006 Costas Busch - RPI 83
Derivation: S aSTb a
Input S
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 2006 Costas Busch - RPI 84
Derivation: S aSTb abTb
Input
b
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 2006 Costas Busch - RPI 85
Derivation: S aSTb abTb
Input
b
a b a b T
b
, S aSTb $
Time 5
, S b Stack
, T Ta a, a
, T b, b
q0 , S q1 , $ $ q2
Fall 2006 Costas Busch - RPI 86
Derivation: S aSTb abTb abTab
Input T
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 2006 Costas Busch - RPI 87
Derivation: S aSTb abTb abTab abab
Input T
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 2006 Costas Busch - RPI 88
Derivation: S aSTb abTb abTab abab
Input a b a b a
b
, S aSTb $
Time 8
, S b Stack
, T Ta a, a
, T b, b
q0 , S q1 , $ $ q2
Fall 2006 Costas Busch - RPI 89
Derivation: S aSTb abTb abTab abab
Input a b a b
b
, S aSTb $
Time 9
, S b Stack
, T Ta a, a
, T b, b
q0 , S q1 , $ $ q2
Fall 2006 Costas Busch - RPI 90
Derivation: S aSTb abTb abTab abab
Input a b a b
, S aSTb $
Time 10
, S b Stack
, T Ta a, a
, T b, b
accept
q0 , S q1 , $ $ q2
Fall 2006 Costas Busch - RPI 91
PDA simulates leftmost derivations
Grammar PDA Computation
Leftmost 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 , ,$)
Scanned Stack
Fall 2006
symbols contents
Costas Busch - RPI 92
Grammar PDA Computation
Leftmost 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 , ,$)
Fall 2006 Costas Busch - RPI 93