Đã tìm ra. Sự nhầm lẫn của tôi là theo thứ tự này, thuật toán dường như không làm gì cả, vì vậy tôi nghĩ rằng đó là sai, và bắt đầu thay thế A -> Cd trong lần lặp đầu tiên (bỏ qua j không thể vượt quá i) đi vào vòng vô hạn .
1) Bằng cách sắp xếp lại các quy tắc:
C -> A | B | f
A -> Cd
B -> Ce
2) thay thế C trong A -> Cd
C -> A | B | f
A -> Ad | Bd | fd
B -> Ce
3) B chưa có trong phạm vi của j, vì vậy hãy để đó và thay thế trực tiếp đệ quy trái của A
C -> A | B | f
A -> BdA' | fdA'
A'-> dA' | epsylon
B -> Ce
4) thay thế C trong B -> Ce
C -> A | B | f
A -> BdA' | fdA'
A'-> dA' | epsylon
B -> Ae | Be | fe
5) chưa hoàn tất! cũng cần phải thay thế các quy tắc B mới -> Ae (sản xuất của A nằm trong phạm vi của j)
C -> A | B | f
A -> BdA' | fdA'
A'-> dA' | epsylon
B -> BdA'e | fdA'e | Be | fe
6) thay đệ quy trực tiếp trái trong tác phẩm của B
C -> A | B | f
A -> BdA' | fdA'
A'-> dA' | epsylon
B -> fdA'eB' | feB'
B'-> dA'eB' | eB' | epsylon
tuyệt vời! trái phép đệ quy ngữ pháp miễn phí!
này nên được di chuyển đến cstheory.stackexchange.com vì đây không có gì để làm với các chương trình, chỉ có lý thuyết CS. – Boggartfly