JavaScript is required

Cho văn phạm S → A hoặc S-> BCD; A → BBA hoặc A->EB; B → bEc hoặc B->BC hoặc B->BDc ; C → c ; D → a hoặc D-> BDb; E → a hoặc E->bE , First(D)=?

A.

{ a,b,c }

B.

{ b,c }

C.

{ a,b}

D.

{ a}

Trả lời:

Đáp án đúng: A


Để tìm First(D), ta cần xác định tập hợp các ký tự đầu cuối có thể xuất hiện đầu tiên khi suy dẫn từ D. Theo văn phạm đã cho, D → a hoặc D → BDb. Vì vậy:

  • Từ D → a, ta có 'a' thuộc First(D).
  • Từ D → BDb, ta cần tìm First(B). Theo văn phạm, B → bEc hoặc B → BC hoặc B → BDc. Do đó, 'b' thuộc First(B).
  • Vì 'b' thuộc First(B) và D → BDb, nên 'b' cũng có thể xuất hiện ở đầu khi suy dẫn từ D.
  • Tuy nhiên, cần lưu ý rằng C → c.
  • Vậy, First(D) = {a, b}.

Câu hỏi liên quan