JavaScript is required

Cho văn phạm gồm 7 luật sinh: (1) S->BA; (2) C->A0; (3) A->1; (4) B->A1; (5) B- >0; (6) A-> epsilon; (7) B-> epsilon. FIRST (C)=?

A.

{0}

B.

{1}

C.

{0,1}

D.

{0,1,epsilon}

Trả lời:

Đáp án đúng: D


Để tìm FIRST(C), ta cần xem xét các luật sinh có C ở vế trái, ở đây là luật C -> A0. Theo định nghĩa, FIRST(C) sẽ bao gồm FIRST(A0). Để tìm FIRST(A0), ta xét FIRST(A). Từ các luật sinh A -> 1 và A -> epsilon, ta có FIRST(A) = {1, epsilon}. Vì epsilon thuộc FIRST(A), ta cần xét đến phần tử tiếp theo sau A trong luật sinh C -> A0, đó là 0. Do đó, FIRST(A0) = {1} ∪ {0} = {0, 1}. Vậy FIRST(C) = {0, 1}.

Câu hỏi liên quan