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)=?
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.