Логическое программирование не на Прологе

Существуют ли хорошие языки логического программирования, отличные от Prolog или основанные на Prolog?

У кого есть или положительный опыт?


person uhbif19    schedule 27.05.2011    source источник
comment
Сразу приходят на ум Scheme и Lisp... какое приложение вы пытаетесь разработать?   -  person Brian Driscoll    schedule 27.05.2011
comment
@Brian Driscoll Хотя модуль логического программирования может быть разработан на функциональных языках программирования, таких как LISP/Scheme, но в прямом смысле - нет, они не принадлежат категория языка логического программирования.   -  person Agnius Vasiliauskas    schedule 11.09.2011


Ответы (7)


Я настоятельно рекомендую The Reasoned Schemer Дэна Фридмана, Олега Киселева и Уилл Берд. Он представляет miniKanren, небольшой (три основных оператора) язык логического программирования, построенный поверх Scheme. Его приятно использовать, особенно с макросом matche, который позволяет унифицировать шаблон совпадает.

person acfoltzer    schedule 27.05.2011

Программирование наборов ответов — чрезвычайно мощная парадигма логического программирования. Я добился большого успеха с помощью решателя наборов ответов clasp/clingo. .

person jordancurve    schedule 10.09.2011

Я познакомился с DLV и моделями через программирование наборов ответов, которое в основном представляет собой логическое программирование.

person Gabriel Ščerbák    schedule 25.06.2011

Взгляните на помощники по доказательству теорем, такие как Coq, HOL и Изабель.

Некоторые системы типов (например, в Agda2) также можно рассматривать как логическое программирование.

person SK-logic    schedule 16.09.2011
comment
Я не уверен, правильно ли классифицировать Coq как язык логического программирования. Способен ли он решать проблемы удовлетворения ограничений так же, как это делает Prolog? - person Anderson Green; 19.02.2019
comment
В Coq возможно выполнить унификацию и возврат, но он по-прежнему содержит несколько ошибок. которые еще не исправлены. - person Anderson Green; 28.02.2021

Вы можете проверить CLIPS. Он структурирован как Lisp (много скобок), но предназначен для создания экспертных систем; Я не видел проблемы, которую мог бы решить Prolog, которую не смог бы решить CLIPS. Как и Пролог, он основан на построении фактов и последующем выполнении запросов к ним.

person mah    schedule 27.05.2011
comment
Хотя подход разный. CLIPS — это система, основанная на правилах прямой цепочки (например, Jess для Java), в отличие от Prolog, которая представляет собой обратную цепочку. система, основанная на правилах (номинально основанная на фрагменте классической логики первого порядка и конкретном конструктивном доказателе теорем. Однако именно нелогические части делают ее живой. Теперь ... будучи основанной на логике, у вас есть общий план, что вычисляется, в отличие от прямых цепочек, где то, что на самом деле происходит, гораздо менее ясно. - person David Tonhofer; 06.08.2016

Существует также довольно быстрая реализация miniKanren, написанная на Clojure, которая называется core.logic.

Есть также несколько руководств по его использованию:

https://github.com/clojure/core.logic/wiki/A-Core.logic-Primer

https://github.com/frenchy64/Logic-Starter/wiki

http://objectcommando.com/blog/2011/11/04/the-magical-island-of-kanren-core-logic-intro-part-1/

http://clojure.com/blog/2011/12/08/lojic-part-two.html

person mnicky    schedule 18.02.2012

На ум приходят Меркьюри и Оз. Существует также Datalog, который является ограниченной (не полной по Тьюрингу) версией Prolog.

person Dominic Mulligan    schedule 16.09.2011