2009-11-26 8 views
5

Rất nhiều triển khai Prolog-in-Scheme được thực hiện ở đó. Ví dụ. Kanren, Schelog.Phân tích cú pháp với DCG trong Đề án (không có Prolog)?

Dường như trong "Mô hình lập trình AI" Norvig triển khai trình biên dịch Prolog-to-Lisp trong Lisp để sử dụng Ngữ pháp xác định khoản.

Nhưng có cách dọn dẹp đơn giản hơn không? Có lẽ một số sử dụng thông minh của amb để tránh thực hiện đầy đủ "Prolog"? Cách dễ nhất để phân tích dựa trên DCG trong Đề án là gì?

Trả lời

4

DCG sử dụng cả hợp nhất và quay lại, do đó, không tránh né việc triển khai lõi của Prolog. Tức là, bạn có thể biểu diễn bất kỳ chương trình Prolog thuần túy nào dưới dạng DCG phân tích cú pháp danh sách trống.

Bạn có thể làm điều đó nếu bạn chỉ quan tâm đến một số trường hợp đặc biệt của DCG, như trường hợp không có biến (chỉ tốt để nhận dạng, không phân tích cú pháp).