Cho văn phạm gồm 6 luật sinh: (1) S->AB; (2) A->A0; (3) A->B0; (4) A->1; (5) B- >A1; (6) B->0. FIRST(S)=?
Trả lời:
Đáp án đúng: C
Để tìm FIRST(S), ta cần tìm tất cả các terminal có thể xuất hiện đầu tiên trong các chuỗi dẫn xuất từ S.
1. S -> AB. Vì vậy, FIRST(S) sẽ chứa FIRST(A).
2. A -> A0, A -> B0, A -> 1. Vậy FIRST(A) sẽ chứa FIRST(B), 0, và 1.
3. B -> A1, B -> 0. Vậy FIRST(B) sẽ chứa FIRST(A) và 0.
Kết hợp lại, FIRST(A) chứa 0 và 1. Do đó FIRST(B) chứa 0 và 1. Vì FIRST(S) chứa FIRST(A), nên FIRST(S) = {0, 1}.
Vậy đáp án đúng là C. {0,1}





