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 , Follow(B)=?

A.

{ a,b,c, dollar }

B.

{ b, dollar }

C.

{ c, dollar }

D.

{ dollar }

Trả lời:

Đáp án đúng: A


Để tìm Follow(B), ta cần xem xét các quy tắc sinh ra B ở vế phải và vế trái:

  • Ở vế phải:

+ S -> BCD: First(CD) = First(C) = {c}. Do đó, c ∈ Follow(B).

+ A -> BBA: First(BA) = First(B) = {b}. Do đó, b ∈ Follow(B).

  • Ở vế trái:

+ B -> bEc: Theo sau B không có gì, xét S -> BCD, D -> a hoặc D -> BDb, ta có nếu B là cuối chuỗi thì ta thêm $ (ký hiệu kết thúc chuỗi) vào Follow(B) vậy $ ∈ Follow(B)

Vậy Follow(B) = {b, c, $}

Đáp án A, B, C, D đều không chính xác

Câu hỏi liên quan