21/1/2010
1
Bài 3.
Vănphmsnsinh
1
Văn
phm
sn
sinh
Làm thế nào để sn sinh ra các
xâu ?
Văn phm phi ng cnh có th dùng để
sn sinh ra các xâu thuc ngôn ng như
sau:
2
X = Ký hiu đầu
WhileWhile còn ký hiu không kết thúc Y trong X dodo
Áp dng mt trong các sn xut ca,văn
phm chng hn Y -> w
Ví d
S -> +A | -A |A
A -> B.B | B
3
B -> BC | C
C -> 0 | 1 | 2 |. . . .|9
Khi X ch cha ký hiu kết thúc, nó là xâu được
sn sinh bi văn phm.
Suy dn (Derivations)
Mi ln thc hin vic thay thế là mt
bướcsuydn
4
bước
suy
dn
.
Nếu mi dng câu có nhiu ký hiu không
kết thúc để thay thế có th s dng bt c
sn xut nào.
21/1/2010
2
Suy dn trái và suy dn phi
Nếu gii thut phân tích cú pháp chn ký
hiu không kết thúc cc trái hay cc phi
để tha
y
thế
,
kết
q
u ca nó lad su
y
dn
5
y , q y
trái hoc suy dn phi
Cây suy dn(Cây phân tích cú pháp)
Cây suy dn có nhng đặc đim sau
1) Mi nút ca cây có nhãn là ký
hiu kết thúc, ký hiu không kết
thúc hoc ε(xâu rng)
2) Nhãn ca nút gc là S (ký hiu
đầu)
6
3) Nút trong có nhãn là ký hiu
không kết thúc
4) Nút A có các nút con t trái qua
phi là X1, X2, ... , Xkthì có mt
sn xut dng A -> X1X2... Xk
5)Nút lá có th có nhãn εch khi tn
ti sn xut A -> εvà nút cha ca
nút lá ch có mt nút con duy nht
Văn phm nhp nhng
Văn phm
E -> E + E
E -> E * E
7
E -> ( E )
E -> ident
Cho phép đưa ra hai suy dn khác nhau cho
xâu ident + ident * ident (chng hn x + y * z)
Văn phm là nhp nhng
Kh nhp nhng
E -> E + T
E -> T
T
>T
*
F
8
T
-
>
T
F
T -> F
F -> ( E )
F -> ident
(Bng cách thêm các ký hiu không kết thúc và các sn xut để
đảm bo th t ưu tiên)
21/1/2010
3
Đệ quy
Mt sn xut là đệ qui nếu X =>* ω1X ω2
Có th dùng để biu din các quá trình lp hay cu trúc
lng nhau
Đệ quy trc tiếp X =>ω1X ω2
9
Đệ quy trái X => b | Xa. X => X a => X a a => X a a a =>b a a a a a ...
Đệ quy phiX => b | a X. X => a X => a a X => a a a X =>... a a a a a b
Đệ quy giaX => b | "(" X")". X =>(X) =>((X)) =>(((X))) =>(((... (b)...)))
Đệ quy gián tiếp X =>* ω1X ω2
Kh đệ quy trái
E -> E + T | T
T -> T * F | F
F -> ( E ) | ident
Kh đ
q
u
y
trái bn
g
cách thêm k
ý
hi
u khôn
g
1 0
qy g
kết thúc và sn xut mi
E -> T E'
E' -> + T E' | ε
T -> F T'
T' -> * F T' | ε
F -> ( E ) | ident