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

A.

{ a,b,c }

B.

{ b,c }

C.

{ a,c}

D.

{ a}

Trả lời:

Đáp án đúng: A


Phân tích để tìm First(A): * A → BBA hoặc A → EB * Để tìm First(A), ta cần tìm First(B) và First(E). * B → bEc hoặc B → BC hoặc B → BDc * First(B) = {b} (vì B có thể bắt đầu bằng 'b') * E → a hoặc E → bE * First(E) = {a, b} (vì E có thể bắt đầu bằng 'a' hoặc 'b') * Vì A → BBA, nên First(A) chứa First(B) = {b}. * Vì A → EB, nên First(A) chứa First(E) = {a, b}. * Vậy, First(A) = {a, b}. Tuy nhiên, không có đáp án nào hoàn toàn trùng khớp. Đáp án A. { a,b,c } là gần đúng nhất, nhưng chứa thêm 'c' không thuộc First(A). Do đó, không có đáp án chính xác trong các lựa chọn đã cho.

Câu hỏi liên quan