Professional Documents
Culture Documents
Chiến lược phân tích top-down (trên xuống): cho VPPNC G = (, , P, S) và
một câu cần phân tích w. Xuất phát từ điểm khởi đầu (S), áp dụng các suy
dẫn trái, tiến từ trái qua phải thử tạo ra câu đưa vào phân tích w. Lưu ý:
Phân tích từng ký tự từ trái sáng phải của xâu đầu vào
1. Chỉ ra quá trình thực hiện phân tích top-down của chuỗi raid thuộc văn phạm G có tập
luật:
S→rXd|rZd
X→oa|ea
Z→ai
2. Chỉ ra quá trình thực hiện phân tích top-down của chuỗi road thuộc văn phạm G có tập
luật:
S→rXd|rZd
X→oa|ea
Z→ai
3. Chỉ ra quá trình thực hiện phân tích top-down của chuỗi read thuộc văn phạm G có tập
luật:
S→rXd|rZd
X→oa|ea
Z→ai
4. Chỉ ra quá trình thực hiện phân tích top-down của chuỗi ((x+y)=(y+x)) thuộc văn
phạm G có tập luật:
S→B
B→R|(B)
R→E=E
E→x|y|(E+E)
5. Chỉ ra quá trình thực hiện phân tích top-down của chuỗi ((aopb)=(bopa)) thuộc văn
phạm G có tập luật:
S→A
A → B | (A )
B→E=E
E → ( E op E )|a | b
6. Chỉ ra quá trình thực hiện phân tích top-down của chuỗi ((x+x)= (y+y)) thuộc văn
phạm G có tập luật:
S→T
T→R|(F)
R→ F = F
F→x|y|(F+F)
7. Có thể áp dụng thuật toán phân tích top-down cho chuỗi (a+a)*a thuộc văn phạm G
dưới đây hay không? Chỉ ra quá trình thực hiện nếu có thể
E→E+T|T
T→T*F|F
F→(E)|a
8. Có thể áp dụng thuật toán phân tích top-down cho chuỗi (b-b)*b thuộc văn phạm G
dưới đây hay không? Chỉ ra quá trình thực hiện nếu có thể
E → E + T | T| E-T
T→T*F|F
F→(E)|b
9. Có thể áp dụng thuật toán phân tích top-down cho chuỗi (aopa)opa thuộc văn phạm G
dưới đây hay không? Chỉ ra quá trình thực hiện nếu có thể
E → E op T | T| EopT
T → T op F | F
F→(E)|a
10. Tương tự câu trên, chỉ ra quá trình phân tích topdown của chuỗi true and not false
với tập luật:
E → E and T | T
T → T or F | F
F → not F | ( E ) | true | false
11. Chỉ ra quá trình thực hiện phân tích top-down của chuỗi abbcbd thuộc văn phạm G
có tập luật:
S→aA|bA
A→cA|bA|d
12. Chỉ ra quá trình thực hiện phân tích top-down của chuỗi aaab thuộc văn phạm G có
tập luật:
S→AB
A→aA|ϵ
B→b|bB
II. Bài tập thuật toán CYK
FIRST(): là tập các ký hiệu kết thúc bắt đầu các xâu được suy dẫn từ .
FOLLOW(A): là tập các ký hiệu kết thúc a mà chúng có thể xuất hiện ngay bên phải
của A ở trong một số dạng câu, tức là tập các ký hiệu kết thúc a sao cho tồn tại một suy
dẫn dạng E + Aa đối với , bất kỳ. Nếu A là ký hiệu bên phải nhất trong một số
dạng câu thì ta thêm $ vào FOLLOW(A).
First(A) = { a , d , g }
X→∈
First(X) = { ∈ }
X → Y1Y2Y3
A → αBβ:
If 𝜀 ∉ First(β), then Follow(B) = First(β)
If 𝜀 ∈ First(β), then Follow(B) = { First(β) – ∈ } ∪ Follow(A)
Lưu ý:
1. Tính First, Follow và tạo bảng phân tích LL(1) cho văn phạm sau:
S→Ac|BBc
C→b|bCd
D→bd|bDd
A→BC
B→dBb|dDb|ϵ
2. Tính First, Follow và tạo bảng phân tích LL(1) cho văn phạm sau:
S→AD|abc
B→dBc|CC
C→DCb|CDb|ϵ
A→ Bc
D→Dd|ϵ
3. Tính First, Follow và Tạo bảng phân tích LL(1) cho văn phạm sau và chỉ ra rõ quá
trình phân tích chuỗi w=(a+a).
S→F
S→(S+F)
F→a
4. Tính First, Follow và tạo bảng phân tích LL(1) cho văn phạm sau:
S→A
A→T|A+T
T→b|(A)
5. Tính First, Follow và tạo bảng phân tích LL(1) cho văn phạm sau:
E→E or T|T
T→T and F|F
F→ not F|(E)|x
6. Tính First, Follow và tạo bảng phân tích LL(1) cho văn phạm sau:
S → aBDh
B → cC
C → bC / ∈
D → EF
E→g/∈
F→f/∈
7. Tính First, Follow và tạo bảng phân tích LL(1) cho văn phạm sau:
S → A
A → aB / Ad
B → b
C → g
8. Tính First, Follow và tạo bảng phân tích LL(1) cho văn phạm sau:
S → (L) / a
L → SL’
L’ → ,SL’ / ∈
9. Tính First, Follow và tạo bảng phân tích LL(1) cho văn phạm sau:
10. Tính First, Follow và tạo bảng phân tích LL(1) cho văn phạm sau:
E→E+T/T
T→TxF/F
F → (E) / id
11. Tính First, Follow và tạo bảng phân tích LL(1) cho văn phạm sau:
E → TE’
E’ → + TE’ / ∈
T → FT’
T’ → x FT’ / ∈
F → (E) / id
12. Tính First, Follow và tạo bảng phân tích LL(1) cho văn phạm sau:
S → ACB / CbB / Ba
A → da / BC
B → g / ∈
C → h / ∈