Tôi có một vấn đề với bài tập này:
Đặt G là ngữ pháp mơ hồ sau đây cho phép tính:
E → v | λv.E | EE | (E)
Trong đó E là ký hiệu không đầu cuối duy nhất, λv.E đại diện cho sự trừu tượng viết biến v trong E và EE đại diện cho ứng dụng.
- Xác định ngữ pháp LL (1) G ′ sao cho L (G ′) = L (G) và sự mơ hồ của G được giải quyết bằng cách áp dụng các quy ước thông thường sau:
- trừu tượng là liên kết đúng;
- ứng dụng là liên kết trái;
- ứng dụng có mức độ ưu tiên cao hơn sự trừu tượng.
- Hiển thị bảng phân tích LL (1) cho G và cây phân tích thu được khi phân tích chuỗi
λv1. λv2. v1v2v1
.
Tôi đã loại bỏ ưu tiên thiết lập sự mơ hồ và liên kết, có được ngữ pháp này:
E -> EF | F
F -> λv.G | G
G -> (E) | v
mà không phải là LL (1), vì sản xuất E -> EF
được để lại đệ quy. Tuy nhiên, loại bỏ đệ quy trái từ sản xuất đó tôi có được:
E -> FE¹
E¹-> FE¹ | ɛ
F -> λv.G | G
G -> (E) | v
không tuân thủ yêu cầu 1.2.
Tôi đã tìm kiếm một giải pháp trên Internet, nhưng có vẻ như không thể loại bỏ đệ quy bảo tồn tính liên kết trái.
Tuy nhiên, bài tập này đã xuất hiện trong bài kiểm tra trình biên dịch vài năm trước, vì vậy phải có câu trả lời đúng.
Cảm ơn sự giúp đỡ của bạn.