JavaScript is required

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(A)=?

A.

A. {0}

B.

B. {1}

C.

C. {0,1}

D.

D. {0,1,epsilon}

Trả lời:

Đáp án đúng: C


Để tìm FIRST(A), ta cần xác định tập hợp các terminal có thể xuất hiện đầu tiên khi dẫn xuất từ A.

  • Từ luật (4): A -> 1, suy ra 1 ∈ FIRST(A).
  • Từ luật (2): A -> A0, luật này không giúp tìm FIRST(A) trực tiếp vì A xuất hiện ở đầu vế phải.
  • Từ luật (3): A -> B0, ta cần xét FIRST(B).
  • Từ luật (6): B -> 0, suy ra 0 ∈ FIRST(B). Do đó, 0 ∈ FIRST(B) kéo theo 0 ∈ FIRST(A) (vì A -> B0).

Vậy, FIRST(A) = {0, 1}.

Câu hỏi liên quan