Professional Documents
Culture Documents
Văn phạm G:
A→A-T|T
T→T*B|B
B → [A] | a
T = {-, *, [,], a}
V = A, T, B
S =A
P = A →A - T T →T * B B→ [ A]
A →T T →B B→ a
Thay
A → A−T ∨T
Bằng
'
A →T A
' '
A →−T A
Thay T → T∗B∨B
Bằng
'
T →BT
T ' →∗B T '
ta được văn phạm:
'
A →T A
' '
A →−T A
'
T →BT
' '
T →∗B T
B→ [ A ] ∨a
b) Xây dựng bảng phân tích cú pháp M.
Tính FIRST
FIRST(A) = FIRST(T) = FIRST(F) ={ [ , a}
FIRST(A') = { - , }
FIRST(T') = { *, }
Tính FOLLOW
FOLLOW(A) = FOLLOW(A') = { $, ) }
FOLLOW(T) = FOLLOW(T') = { -, ], $}
FOLLOW(B) = { *, - , ) , $ }
Ta có bảng M
Ký hiệu chưa Ký hiệu nhập
kết thúc a - * [ ] $
A A TA’ A TA’
T T BT’ T BT’
c)Vận dụng phương pháp phân tích cú pháp từ trên xuống và vẽ cây phân tích cú
pháp cho chuỗi nhập: [a - a] *a
Quá trình phân tích cú pháp cho chuỗi nhập: [a - a] *a được trình bày trong
bảng sau:
$ A’ T [a - a] *a $ A TA’
$ A’ T’ B [a - a] *a $ T BT’
$ A’ T’ ] A [ [a - a] *a $ B [A]
$ A’ T’ ] A a - a] *a $
$ A’ T’ ] A’ T a - a] *a $ A TA’
$ A’ T’ ] A’ T’ B a - a] *a $ T BT’
$ A’ T’ ] A’ T’ a a - a] *a $ Ba
$ A’ T’ ] A’ T’ - a] *a $
$ A’ T’ ] A’ - a] *a $ T’
$ A’ T’ ] A’ T - - a] *a $ A’ -TA’
$ A’ T’ ] A’ T a] *a $
$ A’ T’ ] A’ T’ B a] *a $ T BT’
$ A’ T’ ] A’ T’ a a] *a $ Ba
$ A’ T’ ] A’ T’ ] *a $
$ A’ T’ ] A’ ] *a $ T’
$ A’ T’ ] ] *a $ A’
$ A’ T’ *a $
$ A’ T’ B * *a $ T’ *BT’
$ A’ T’ B a$
$ A’ T’ a a$ Ba
$ A’ T’ $
$ A’ $ T’
$ $ A’
cây phân tích cú pháp
A' T
T' B
T' B * ] A [
a A' T
A' T - T' B
T' B A
a
Bài 2: Cho văn phạm G có tập luật sinh sau
A→A-T|T
T→T*B|B
B → [A] | a
a) Xác định các thành phần của văn phạm G
Văn phạm G:
A→A-T|T
T→T*B|B
B → [A] | a
T = {-, *, [,], a}
V = A, T, B
S =A
P = A →A - T T →T * B F →[ A]
A →T T →B F→a
(1) A → A - T
(2) A → T
(3) T → T * B
(4) T → B
(5) B → [A]
(6) B → a
Trạng thái Action Goto
a - * [ ] $ A T B
0 s5 s4 1 2 3
1 s6 acc
2 r2 s7 r2 r2
3 r4 r4 r4 r4
4 s5 s4 8 2 3
5 r6 r6 r6 r6
6 s5 s4 9 3
7 s5 s4 10
8 s6 s11
9 r1 s7 r1 r1
10 r3 r3 r3 r3
11 r5 r5 r5 r5
Ý nghĩa:
si: chuyển trạng thái i
ri: thu gọn bởi luật sinh i
acc: accept (chấp nhận)
error: khoảng trống
c)Vận dụng phương pháp phân tích cú pháp từ dưới lên và vẽ cây phân tích cú
pháp cho chuỗi nhập: [a - a] *a
A
T
T * B
B a
[ A ]
A - T
T B
B a
a