Control unit StackInput file... Ví d̈ Xây d ng npda cho ngôn ng này nh sau... ̈ Gi s chúng ta đang phân tích t trên xu ng, đang th tìm.
Trang 1̈ T ví d ngôn ng {wwR}, chúng ta c n thêm kh n ng
l u và so trùng m t dãy kí hi u trong th t ng c l i.
̈ i u này đ ngh chúng ta th m t stack nh m t c ch
l u tr ó chính là l p ôtômát đ y xu ng (PushDown Automata - PDA)
Trang 3Ôtômat đ y xu ng không đ n đ nh
̈ M i di chuy n c a đ n v đi u khi n đ c m t kí hi u nh p,
trong cùng th i đi m đó thay đ i n i dung c a stack
̈ M i di chuy n đ c xác đ nh b ng kí hi u nh p hi n t i, kí hi u
hi n t i trên đ nh c a stack K t qu là m t tr ng thái m i c a
đ n v đi u khi n và m t s thay đ i trên đ nh c a stack
̈ Chúng ta s ch nghiên c u các PDA thu c lo i accepter
Control unit
StackInput file
Trang 4nh ngh a ôtômát đ y xu ng
̈ nh ngh a 7.1
M t accepter đ y xu ng không đ n đ nh (npda) đ c đ nh ngh a b ng b b y M = (Q, Σ, Γ, δ, q0, z, F), trong đó
̈ Q là t p h u h n các tr ng thái n i c a đ n v đi u khi n,
̈ Σ là b ng ch cái ngõ nh p (input alphabet),
̈ Γ là b ng ch cái stack (stack alphabet),
̈ q0 ∈ Q là tr ng thái kh i đ u c a đ n v đi u khi n,
̈ z ∈ Γ là kí hi u kh i đ u stack (stack start symbol),
̈ F ⊆ Q là t p các tr ng thái k t thúc.
̈ Hàm chuy n tr ng thái δ là m t ánh x
δ : Q × (Σ ∪ {λ}) × Γ → t p con h u h n c a Q × Γ*,
Trang 5Input file
Control unit
q
Trang 7M t s khái ni m
̈ Hình tr ng t c th i
̈ Là b ba (q, w, u) , trong đó q là tr ng thái c a đ n v đi u
khi n, w là ph n ch a đ c c a chu i nh p, còn u là n i dung
c a stack (v i kí hi u trái nh t là kí hi u đ nh c a stack)
Trang 8|
Trang 9Ví d
̈ Xây d ng npda cho ngôn ng này nh sau
̈ M = ({q0, q f }, {a, b}, {0, 1, z}, δ, q0, z, {q f})
δ(q0, λ, z) = {(qf , z)}, δ(q0, a, z) = {(q0, 0z)}, δ(q0, b, z) = {(q0, 1z)}, δ(q0, a, 0) = {(q0, 00)}, δ(q0, b, 0) = {(q0, λ)},
Trang 10δ(q0, λ, a) = {(q1, a)}, δ(q0, λ, b) = {(q1, b)},
δ(q1, a, a) = {(q1, λ)},
δ(q1, b, b) = {(q1, λ)},
δ(q1, λ, z) = {(qf , z)}.
Trang 11Ví d (tt)
̈ Dãy chuy n hình tr ng đ ch p nh n chu i abba là
(q0, abba, z) (q0, bba, az) (q0, ba, baz) (q1, ba, baz) (q1, a, az) (q1, λ, z) (qf, λ, z)
̈ Npda c i ti n
δ(q0, a, z) = {(q0, aa)}, δ(q1, a, a) = {(q1, λ)},
δ(q0, b, z) = {(q0, bz)}, δ(q1, b, b) = {(q1, λ)},
δ(q0, a, a) = {(q0, aa), (q1, λ)}, δ(q1, λ, z) = {(qf , z)} δ(q0, b, a) = {(q0, ba)},
Trang 12Bài t p
̈ Dãy chuy n hình tr ng đ ch p nh n chu i abba là
(q0, abba, z) (q0, bba, az) (q0, ba, baz) (q1, a, az) (q1, λ, z) (qf, λ, z)
Trang 13Ôtômát đ y xu ng cho NNPNC
̈ Chúng ta xây d ng m t npda mà có th th c hi n đ c (mô
ph ng) m t DXTN c a m t chu i b t k trong ngôn ng
̈ Gi thi t ngôn ng đ c sinh ra b i m t v n ph m có d ng
chu n Greibach
̈ Pda s p xây d ng s bi u di n s d n xu t b ng cách nh sau
̈ Gi các bi n trong ph n bên ph i c a d ng câu trên stack c a
nó, còn ph n bên trái, chu i ch a các kí hi u k t thúc, là gi ng
Trang 14̈ u tiên, tr ng thái kh i đ u bi n S đ c đ t trên stack b ng
δ(q0, λ, z) = {(q1, Sz)}
Trang 15̈ S xu t hi n kí hi u kh i đ u stack trên đ nh stack báo hi u shoàn t t c a d n xu t và PDA s đ c đ t vào trong tr ng thái
k t thúc c a nó b ng chuy n tr ng thái
δ(q1, λ, z) = {(qf, λ)}
Trang 17nh lý
̈ nh lý 7.1
̈ i v i m t NNPNC b t k không ch a λ, t n t i m t npda Msao cho
L = L(M).
̈ Th t c: GGreibach-to-npda
B1 M = ({q0, q1, q f }, T, V ∪ {z}, δ, q0, z, {q f }), z ∉ V.
B2 δ(q0, λ, z) = {(q1, Sz)}
B3 δ(q1, a, A) ∋ {(q1, u)} ⇔ P có lu t sinh A → au
B4 δ(q1, λ, z) = {(qf , z)}
Trang 18δ(q1, b, A) = {(q1, B)}, δ(q1, b, B) = {(q1, λ)},
_
| _
| _
| _
| _
| _
| _
Trang 19B3 δ(q1, a, A) ∋ {(q1, u)} ⇔ P có lu t sinh A → au, a ∈ T
B4 δ(q1, λ, A) ∋ {(q1, u)} ⇔ P có lu t sinh A → u và u không có
kí hi u k t thúc đi đ u
B5 δ(q1, a, a) = (q1, λ) v i a ∈ T và a xu t hi n trong m t v
ph i lu t sinh nào đó mà không ph i v trí kh i đ u
B6 δ(q1, λ, z) = {(qf , z)}
Trang 20(q1, λ, z), λ, z).
_
| _
| _
| _
| _
| _
| _
| _
| _
| _
| _
| _
Trang 21VPPNC cho ôtômát đ y xu ng
̈ Quá trình này ng c v i quá trình trong nh lý 7.1, t c là xây
d ng v n ph m mô ph ng s di chuy n c a pda
̈ Ph n bi n c a d ng câu ph n ánh n i dung stack, ph n chu i
nh p đã đ c x lý chính là ph n chu i kí hi u k t thúc làm
ti p đ u ng c a d ng câu
̈ B đ
̈ ∀ npda ∃ npda t ng đ ng thõa 2 đi u ki n
(1) Ch có m t tr ng thái k t thúc và npda ch trong tr ng thái
Trang 22VPPNC cho ôtômát đ y xu ng (tt)
̈ Chúng ta mu n d ng câu ch ra n i dung c a stack
̈ C u hình c a m t npda còn liên quan đ n tr ng thái n i c a ôtômát nên nó ph i đ c ghi nh trong d ng câu
̈ L y (q i Aq j) làm các bi n cho v n ph m, v i di n d ch
(q i Aq j) w n u và ch n u npda “xóa” A kh i stack và đi t
tr ng thái q i đ n q j trong khi đ c ngõ nh p chu i w.
̈ “Xóa” đây có ngh a là A và các k t qu sau nó bi n m t kh i stack, và kí hi u ngay bên d i A s tr thành đ nh stack
Trang 23VPPNC cho ôtômát đ y xu ng (tt)
trong đó q k và q l l y m i giá tr có th trong Q.
̈ Khi vét c n có th có m t vài q k không th đ t t i đ c t q i
trong khi xóa A c ng nh có th có m t vài q l không th đ t t i
đ c t q j trong khi xóa B.
Trang 24Ví d
̈ Xây d ng VPPNC cho npda sau (q0 kh i đ u, q2 k t thúc)
δ(q0, a, z) = {(q0, Az)}, δ(q0, a, A) = {(q0, A)}, δ(q0, b, A) = {(q1, λ)},
Trang 30| _
| _
| _
|
Npda
δ(q0, a, z) = {(q0, Az)}, δ(q0, a, A)= {(q3, λ)},
δ(q3, λ, z) = {(q0, Az)}, δ(q0, b, A)= {(q1, λ)},
Trang 32̈ nh ngh a 7.4
̈ M t ngôn ng L đ c g i là NNPNC đ n đ nh n u và ch n u
t n t i m t dpda M sao cho L = L(M)
Trang 33δ(q2, b, a) = {(q2, λ)},
δ(q2, λ, z) = {(q0f, λ)}
Trang 34δ(q0, b, 1) = {(q1, λ)},
δ(q1, b, 1) = {(q1, λ)},
δ(q1, #, z) = {(q f, λ)}
Trang 36̈ Gi s L là NNPNC đ n đ nh, g i M = (Q, Σ, Γ, δ, q0, z, F) là
dpda c a L v i Q = {q0, q1, , q n}
Trang 39V n ph m cho các NNPNC đ n đ nh
̈ NNPNC cho phép PTCP m t cách hi u qu , b ng cách xem dpda nh là m t thi t b phân tích
̈ Tính đ n đ nh suy ra vi c x lý chu i nh p trong th i gian
tuy n tính v i chi u dài chu i nh p
̈ Nh ng lo i v n ph m nào thích h p cho vi c mô t các
NNPNC và cho phép PTCP th i gian tuy n tính
̈ Gi s chúng ta đang phân tích t trên xu ng, đang th tìm
Trang 40̈ V i VPPNC t ng quát, đi u này là không th , nh ng n u d ng
c a v n ph m đ c h n ch h n, có th th c hi n đ c m c đích c a chúng ta
c a nó còn h n ch
Trang 4221
S
#
b a
S → aS | AB, (1, 2)
A → bA | b, (3, 4)
B → aS | b, (5, 6)
Trang 43̈ Nh ng v n ph m LL là không đ t ng quát đ gi i quy t các NNPNC Vì v y, có m t m i quan tâm đ n các lo i v n
ph m khác, v n ph m đ n đ nh t ng quát h n
̈ ó là v n ph m LR, cái mà cho phép PTCP hi u qu , và xây
d ng cây d n xu t t d i lên