3.1. Nêu định nghĩa văn phạm phi ngữ cảnh (CFG); cho ví dụ.
3.2. Nêu các khái niệm: dẫn xuất, ngôn ngữ sinh bởi CFG; cho ví dụ.
3.3. Nêu định nghĩa cây dẫn xuất; phƣơng pháp xây dựng cây dẫn xuất; cho ví dụ. 3.4. Nêu quan hệ giữa dẫn xuất và cây dẫn xuất.
3.5. Nêu định nghĩa dẫn xuất trái nhất, dẫn xuất phải nhất, văn phạm nhập nhằng; cho ví dụ.
3.6. Nêu khái niệm ký hiệu thừa, không thừa; cho ví dụ.
3.7. Nêu giải thuật loại bỏ các biến không dẫn ra xâu các ký hiệu kết thúc; cho ví dụ.
3.8. Nêu giải thuật loại bỏ các ký hiệu không đƣợc dẫn ra từ ký hiệu bắt đầu của văn phạm; cho ví dụ.
3.9. Nêu khái niệm luật sinh . Phƣơng pháp loại bỏ luật sinh ; cho ví dụ.
3.10. Nêu khái niệm luật sinh đơn vị. Phƣơng pháp loại bỏ luật sinh đơn vị; cho ví dụ.
3.11. Nêu dạng chuẩn Chomsky - CNF và phƣơng pháp đƣa một CFG về dạng chuẩn Chomsky; cho ví dụ.
3.12. Nêu dạng chuẩn Greibach - GNF và phƣơng pháp đƣa một CFG về dạng chuẩn Greibach; cho ví dụ.
3.13. Nêu tính chất của CFL.
3.14. Nêu các giải thuật quyết định CFL. Cho ví dụ. 3.15. Mô tả PDA và sự hoạt động của nó.
3.16. Nêu định nghĩa PDA; ngôn ngữ đoán nhận bởi PDA; cho ví dụ.
3.17. Nêu sự dịch chuyển của PDA và khái niệm hình trạng của PDA; cho ví dụ. 3.18. Nêu các định lý về sự tƣơng đƣơng giữa việc đoán nhận ngôn ngữ bởi trạng
thái kết thúc và bởi stack rỗng; cho ví dụ.
3.19. Nêu phƣơng pháp xây dựng PDA tƣơng đƣơng với CFL; cho ví dụ.
3.20. Nêu phƣơng pháp xây dựng PDA tƣơng đƣơng với CFL; cho ví dụ.
1) S → aS | Sb | aSb | c 2) S → SS | a | b 3) S → SaS | b 4) S → aSS | b 5) S → aA | bB| c; A → Sa; B → Sb. 6) S → AB; A → Sc | a; B → dB | b. 7) S → TT; T → aTa | bTb | c.
a) Nêu đầy đủ các thành phần của mỗi văn phạm. b) Mô tả ngôn ngữ sinh bởi mỗi văn phạm.
3.22. Hãy chỉ ra một văn phạm phi ngữ cảnh sinh ra tập hợp:
1) Tập hợp các xâu đọc xuôi đọc ngƣợc nhƣ nhau (đối xứng) trên bộ chữ cái Σ = {0,1}.
2) Tập hợp chuỗi các dấu ngoặc đúng trong biểu thức số học. 3) Tập hợp {aibicj | i, j ≥ 0}
4) Tập hợp {ambn | m, n > 0} 5) Tập hợp {aicaj | i , j ≥ 0} 6) Tập hợp {ajbjcidi | i, j ≥ 1}
3.23. Chứng minh rằngvăn phạm phi ngữ cảnh G với tập luật sinh: 1) P: S aAb | , A aAb | sinh ra ngôn ngữ {anbn n 0};
2) P: S AB, AaA| a, BbB| b sinh ra ngôn ngữ {ambn | m, n > 0};
3) P: S ABC, AaAb|ab, BcB|c, C dC|d sinh ra ngôn ngữ {aibicjdk | i, j, k ≥ 1}.
3.24. Cho các văn phạm G có tập các luật sinh tƣơng ứng: 1) S abSba |
2) S 01S | A; A Aabc | 3) S Sabc | A; A 01A |
Hãy tìm:
1) Dẫn trái nhất xuất, dẫn xuất phải nhất ra xâu w.
2) Cây dẫn xuất trái nhất, cây dẫn xuất phải nhất ra xâu w. 3.26. Cho văn phạm G với các luật sinh sau:
E → T | E + T | E - T; T → F | T × F | T / F; F → a | b | c | d | (E). 1) Nêu đầy đủ các thành phần của G.
2) Vẽ cây dẫn xuất sinh ra các xâu vào sau: a) (a + b) / c
b) a × (b - c) c) a – (b × c / d)
3.27.Cho văn phạm: S → aSbS | bSaS | ε
1) Chứng tỏ văn phạm này là văn phạm nhập nhằng (mơ hồ).
2) Xây dựng dẫn xuất trái nhất, phải nhất và cây dẫn xuất tƣơng ứng cho xâu abab. 3.28. Cho văn phạm sinh ra câu lệnh rẽ nhánh trong ngôn ngữ lập trình Pascal:
S → If b then S else S; S → If b then S; S → a; Trong đó a, b, if, then, else là các ký hiệu kết thúc và S là biến.
1) Chứng tỏ văn phạm trên là nhập nhằng (mơ hồ).
2) Hãy đƣa ra một văn phạm không nhập nhằng tƣơng đƣơng. 3.29. Cho văn phạm:
S → S+S | S-S | S*S | S/S | (S) |a.
1) Chứng tỏ văn phạm là nhập nhằng (mơ hồ):
2) Hãy đƣa ra một văn phạm không nhập nhằng tƣơng đƣơng ? T → ( S ) | a .
3.30. Hãy loại bỏ các ký hiệu thừa trong mỗi văn phạm sau: 1) S → A | aSb | a; A → AB; B → b.
2) S → AB | CA; A → a; B → BC | AB; C → aB | b.
3.31. Tìm văn phạm chỉ có chứa một luật sinh ε duy nhất S → ε tƣơng đƣơng với văn phạm sau:
S → AB; A → SA | BB | bB; B → b | aA | ε. 3.32. Cho văn phạm có tậpluật sinh:
S → AB | A | ; A → aBb | bS | b; B → AB | Ba |; C → Aa | D | . Hãy tìm văn phạm tƣơng đƣơng thỏa mãn một trong các điều kiện:
1) Không chứa ký hiệu thừa
2) Không chứa luật sinh nào khác ngoài luật sinh S→ ε 3.33. Cho văn phạm có tập luật sinh:
S → AB | A | ; A → aBb | bS | b; B → AB | Ba |; C → Aa | D | . Hãy tìm văn phạm tƣơng đƣơng thỏa mãn các điều kiện:
1) Không chứa ký hiệu thừa.
2) Không chứa luật sinh nào khác ngoài luật sinh S→ ε. 3) Không chứa luật sinh đơn vị.
3.34. Tìm văn phạm không chứa ký hiệu thừa, luật sinh ε ngoại trừ luật sinh S → ε và luật sinh đơn vị tƣơng đƣơng với mỗi văn phạm sau:
1) S → aSbS | bSaS | ε
2) S → A | B; A → aB | bS | b; B → AB | Ba; C → AS | b. 3) S → ABC; A → BB | ε; B → CC | a; C → AA | b.
4) S → A | B; A → C | D; B → D | E; C → S | a | ε; D → S | b; E → S | c | ε. 3.35.Cho văn phạm với các luật sinh sau:
S → A | aCA; A → D | a | ε; B → C | AbcB; C → aB | b | c | ε. 1) Nêu các thành phần của văn phạm trên.
2) Tìm văn phạm tƣơng đƣơng với văn phạm trên không chứa ký hiệu thừa, luật sinh εvà luật sinh đơn vị.
3.36. Cho văn phạm với các luật sinh sau:
S → A| AcBC; A → B | ε; B → bCA | C |a; C → ABc | b| ε. 1) Nêu các thành phần của văn phạm trên.
2) Tìm văn phạm tƣơng đƣơng với văn phạm trên không chứa ký hiệu thừa, luật sinh ε và luật sinh đơn vị.
3.37. Biến đổi các văn phạm sau đây về dạng chuẩn CHOMSKY:
1) S → bA | aB; A → bAA | aS | a; B → aBB | bS | b. 2) S → 0S1 | 01.
4) S → adAda | aSa | aca; A → bAb | bdSdb.
3.38. Biến đổi các văn phạm sau đây về dạng chuẩn GREIBACH:
1) G = ( {S, A}, {0, 1}, P, S) với các luật sinh P: S → AA | 0; A → SS | 1.
2) G = ( {A1, A 1, A
2, A
3}, {a, b}, P, A
1) với các luật sinh P: A 1 → A2A 3 ; A2 → A3A 1 | b; A 3 → A1A 2 | a. 3) G = ( {A 1, A 2, A 3, A 4}, {a, b}, P, A
1) với các luật sinh P: A 1 → A2A 3 | A 3A 4; A 2 → A3A 2 | a; A 3 → A4A 4 | b; A 4 → A2A 3 | a. 3.39. Cho văn phạm G với các luật sinh sau:
S → BA | 0; A → SS | 1; B → AB | 0 | 1.
1) Xác định các thành phần và dạng chuẩn của văn phạm trên 2) Biến đổi văn phạm trên về dạng chuẩn GREIBACH
3.40. Cho Automat pushdown M = < Q, , , , q0 , Z0 , F >; Trong đó: Q = {q0, q1, q2}; = {a, b}; = {Z0 , X, Y}; F = ;
: (q0 , a, Z0 ) = {(q0, XXX)};
(q0 , a, X) = {(q0, XX)};
(q0 , b, X) = {(q1, )};
(q1 , b, X) = {(q1, ), (q2, Y )};
(q2 , , Y) = {(q1, )}.
Hãy kiểm tra xem M có đoán nhận đƣợc từ w bằng stack rỗng không:
- w = aaaabbbbbb; - w = aabbb.
3.41. Cho Automat pushdown M = < Q,, , , q0, Z0 , F >;
Trong đó: Q = {q0, q1, q2}; = {a, b}; = {Z0 , X, Y}; F = {q2}; : (q0 , a, Z0 ) = {(q0, XXX)};
(q0 , a, X) = {(q0, XX)};
(q0 , b, X ) = {(q1, )};
(q1 , b, X) = {(q1, ), (q2, YX)};
Hãy kiểm tra xem M có đoán nhận đƣợc từ w bằng trạng thái kết thúc không:
- w = aaaabbbbbb; - w = aabbbbb.
3.42.Chứng minh rằng các ngôn ngữ sau không phải là CFL: 1) L = {ai bj ck | i < j < k }
2) L = {ai bj| j = i2 }
3) L = {ai| i là số nguyên tố } 4) L = {anbncndn | n ≥ 0}
3.43. Viết chƣơng trình loại bỏ các ký hiệu thừa trong một CFG.
3.44. Viết chƣơng trình loại bỏ các luật sinh và luật sinh đơn vị trong một CFG.
3.45. Viết chƣơng trình chuẩn hóa một CFG thành dạng chuẩn CHOMSKY (CNF).
3.46. Viết chƣơng trình chuẩn hóa một CFG thành dạng chuẩn GREIBACH (GNF).
3.47. Xây dựng PDA tƣơng đƣơng với văn phạm:
1) S → +SS | *SS | a.
2) S → aS | bS | aA; A → bB| b; B → aC; C → b. 3.48. Xây dựng PDA đoán nhận một trong các ngôn ngữ: 1) Tập hợp {anbn | n ≥ 0}
2) Tập hợp {ambn | m, n > 0} 3) Tập hợp {aicaj | i, j ≥ 0} 4) {0m 1m 2n | m, n ≥ 1} 5) {am bmcn dn | m, n ≥ 0}
3.49. Xây dựng văn phạm CFG tƣơng đƣơng với các PDA sau:
1) M = <{q 0, q
1}, {0, 1}, {Z
0, X}, δ, q0, Z
0, ∅>; trong đó δ đƣợc cho nhƣ sau: δ(q 0, 1, Z 0) = {(q 0, XZ 0)} δ(q 0, 0, X) = {(q 0, XX)} δ(q 0, 1, X) = {(q 1, ε)} δ(q , 1, X) = {(q , ε)}
δ(q 1, ε, Z 0) = {(q 1, ε)} 2) M = <{q 0, q 1}, {0, 1}, {Z 0, X}, δ, q 0, Z
0, ∅>; trong đó δđƣợc cho nhƣ sau: δ(q 0, 1, Z 0) = {(q 0, XZ 0)}; δ(q 0, 1, X) = {(q 0, XX)}; δ(q 0, 0, X) = {(q 1, X)}; δ(q 0, ε, Z 0) = {(q 0, ε)}; δ(q 1, 1, X) = {(q 1, ε)}; δ(q 1, 0, Z 0) = {(q 0, Z 0)}. 3) M ({q 0, q 1}, {a, b, c}, {Z 0, X}, δ, q 0, Z
0, ∅), trong đó δđƣợc cho nhƣ sau: δ(q0, a, Z 0) = {(q 0, X)}; δ(q0, a, X) = {(q 0, XX)}; δ(q0, c, X) = {(q 1, X)}; δ(q0, b, Z 0) = {(q 0, X)}; δ(q0, b, X) = {(q 0, XX)}; δ(q1, c, X) = {(q 1, ε)}.
3.50. Cho Automat pushdown M = < Q, , , , q0 , Z0 , F >;
Trong đó: Q = {q0, q1, q2}; = {a, b}; = {Z0 , X, Y}; F = {q2}; : (q0 , a, Z0 ) = {(q0, XXX)};
(q0 , a, X) = {(q0, XX)}; (q0 , b, X ) = {(q1, )};
(q1 , b, X) = {(q1, ), (q2, YX)}; (q2 , b,Y ) = {(q2, ), (q2, YX )}. Xây dựng văn phạm CFG tƣơng đƣơng với PDA trên.