Cho văn phạm với các luật sinh: S -> AB; A -> aA ; A -> epsilon; B -> bB ; B-> epsilon, Follow (B) = ?
Đáp án đúng: D
Để tìm Follow(B), ta cần xem xét các luật sinh có B ở vế phải:
- S -> AB
Theo định nghĩa, Follow(B) chứa tất cả các terminal có thể theo sau B trong một chuỗi dẫn xuất từ văn phạm. Trong trường hợp này, B xuất hiện ở cuối luật sinh S -> AB. Do đó, Follow(B) sẽ chứa tất cả các terminal thuộc Follow(S). Vì S là ký hiệu bắt đầu, Follow(S) chứa '$' (ký hiệu kết thúc chuỗi). Mặt khác, B có thể không xuất hiện ở cuối chuỗi dẫn xuất (ví dụ: S -> A), nên Follow(B) chỉ chứa các terminal theo sau B trong các luật sinh khác, hoặc Follow(S) nếu B ở cuối. Trong luật S -> AB, nếu A có thể dẫn xuất ra chuỗi rỗng (epsilon), thì Follow(B) sẽ chứa Follow(S). Vì A -> aA | epsilon, A có thể dẫn xuất ra epsilon. Do đó Follow(B) chứa Follow(S) = {$}
Tuy nhiên, ta cũng cần xét xem có luật sinh nào khác mà B xuất hiện ở vế phải không. Ở đây không có, nên Follow(B) = {$}





