Nguy n Ph ng Thái ươ
B môn Khoa h c Máy tính
http://www.coltech.vnu.vn/~thainp/
Nội dung
Cú pháp đi u khi n
Các lo i thu c tính
Đ th ph thu c
L c đ d chượ
Cú pháp đi u khi n trong phân tích LL
Cú pháp điều khiển
Cú pháp đi u khi n (syntax-directed definition): là m t
d ng t ng quát hoá c a văn ph m phi ng c nh, trong
đó m i ký hi u văn ph m có m t t p thu c tính đi kèm,
đc chia thành 2 t p con là thu c tính t ng h p ượ
(synthesized attribute) và thu c tính k th a (inherited ế
attribute) c a ký hi u văn ph m đó.
M t cây phân tích cú pháp có trình bày các giá tr c a các
thu c tính t i m i nút đc g i là cây phân tích cú pháp ượ
có chú gi i (ng nghĩa) (annotated parse tree).
Cú pháp điều khiển (tiếp)
Đnh nghĩa:
Trong m i cú pháp đi u khi n, m i s n xu t A-> có th
đc liên k t v i m t t p các qui t c ng nghĩa có d ng ượ ế
b=f(c1, . . .,ck) v i f là m t hàm và
b là m t thu c tính t ng h p c a A, còn c 1, . . .,ck là các
thu c tính c a các ký hi u trong s n xu t đó. Ho c
b là m t thu c tính k th a c a m t trong nh ng ký hi u ế
v ph i c a s n xu t, còn c ế 1, . . . ,ck là thu c tính c a
các ký hi u văn ph m.
Ví dụ về thuộc tính tổng hợp
S n xu t Lu t ng nghĩa
L -> E nPrint(E.val)
E -> E1 + T E.val = E1.val + T.val
E -> T E.val = T.val
T -> T1 * F T.val = T1.val * F.val
T -> F T.val = F.val
F -> ( E ) F.val = E.val
F -> digit F.val = digit.lexval