2011-01-16 30 views

Trả lời

9

Mercury đẹp và hiện đại và giống với prolog.

Thủy ngân là ngôn ngữ lập trình logic/chức năng mới, kết hợp sự rõ ràng và biểu cảm của lập trình khai báo với tính năng phân tích tĩnh và phát hiện lỗi nâng cao. Thuật toán thực thi được tối ưu hóa cao của nó mang lại hiệu quả vượt xa các hệ thống lập trình logic hiện có và gần với các hệ thống lập trình thông thường. Mercury giải quyết các vấn đề về phát triển chương trình có quy mô lớn, cho phép mô đun, biên dịch riêng biệt, và nhiều lần cân bằng tối ưu hóa/thời gian.

+1

Tôi cũng đã đưa Mercury trở thành một ngôn ngữ lập trình lôgic tuyệt vời. Cũng lưu ý rằng trong khi cú pháp của Mercury có thể trông giống như Prolog, nó cảm thấy giống như bạn đang lập trình trong Haskell do hệ thống kiểu mạnh. Hơn nữa nếu bạn cần một số tính năng Prolog thông thường như Biến logic, Mercury không hỗ trợ chúng. Trong thực tế tránh chúng sẽ làm cho chương trình của bạn dễ bảo trì hơn :-). Tuyên bố từ chối trách nhiệm: Tôi làm việc trên dự án Mercury, các quan sát về bảo trì mã là chủ quan và giai thoại. Các nhận xét khác là khách quan. –

+1

Việc thiếu các biến logic có vẻ như là một bất lợi lớn. Đó không phải là một khía cạnh khá trung tâm của prolog/LP sao? – ib84

5

Có ngôn ngữ lập trình logic chức năng khá đầy hứa hẹn được gọi là Curry. Mặc dù tính mới của nó rất dễ dàng để làm quen với Curry nếu bạn đã biết Haskell và Prolog vì nó đã bị ảnh hưởng trực tiếp bởi hai ngôn ngữ này.

Curry kết hợp một cách liền mạch tính năng từ lập trình chức năng (biểu thức lồng nhau, bậc cao chức năng, đánh giá lười biếng), logic lập trình (biến logic, cấu trúc dữ liệu một phần, built-in tìm kiếm) và lập trình đồng thời (đánh giá đồng thời các biểu thức với đồng bộ hóa trên các biến hợp lệ ).

1

Oz/Mozart là ngôn ngữ lập trình đa mô hình hỗ trợ lập trình Logic là một trong các tính năng của nó. Tôi đã không bao giờ sử dụng nó vì vậy tôi không thể nói nếu nó tốt. Nó chắc chắn có vẻ thú vị mặc dù.

Tuyên bố từ chối trách nhiệm: Tôi làm việc trên dự án Mercury và chọn Mercury theo lựa chọn giữa Oz/Mozart và Mercury.

+0

Vui lòng sửa liên kết tới Oz/Mozart. – nbro

2

Đừng quên rằng Prolog là máy chủ lưu trữ cho nhiều tiện ích mở rộng mới hơn có thể được coi là ngôn ngữ theo cách riêng của chúng. Trong các ngôn ngữ ràng buộc cụ thể như CLP (R), CLP (Q), CLP (FD). Các tiện ích mở rộng chung hơn như CHR, nhưng cũng có nhiều cách tiếp cận đã nhập.

Những ngôn ngữ này thường được gửi dưới dạng thư viện trong hệ thống Prolog hiện có. Những gì bạn nhận được trong cài đặt đó thường là việc triển khai đáng kể và trưởng thành hơn đáng kể so với hệ thống từ đầu có thể cung cấp. Xét cho cùng, nhiều hệ thống Prolog đã gần 30 tuổi.

3

Logtalk là ngôn ngữ lập trình logic hướng đối tượng mở rộng và tận dụng ngôn ngữ Prolog với bộ tính năng phù hợp cho lập trình ở quy mô lớn, tập trung vào cơ chế đóng gói và tái sử dụng mã. Nó hỗ trợ di động cao như một trình biên dịch phụ trợ chủ động duy trì việc triển khai Prolog. Các tính năng đáng chú ý khác bao gồm hỗ trợ cho cả nguyên mẫu và lớp, giao thức (giao diện), coinduction, lập trình dựa trên thành phần, lập trình hướng sự kiện và lập trình đa luồng cao cấp. Bản phân phối hiện tại bao gồm một tập hợp lớn các ví dụ lập trình, các công cụ lập trình, thư viện và trình chỉnh sửa văn bản và tô sáng cú pháp hỗ trợ lập trình và xuất bản mã nguồn.

Các vấn đề liên quan