【问题标题】:Non-Prolog logic programming非 Prolog 逻辑编程
【发布时间】:2011-05-27 17:33:09
【问题描述】:

有没有好的非 Prolog 或基于 Prolog 的逻辑编程语言?

谁有这方面的经验?

【问题讨论】:

  • 突然想到Scheme和Lisp……你想开发什么样的应用程序?
  • @Brian Driscoll 虽然逻辑编程模块可以用LISP/Scheme等函数式编程语言开发,但直接意义上——不,它们不属于logic-programming语言类别。

标签: programming-languages logic-programming


【解决方案1】:

我强烈推荐The Reasoned Schemer, by Dan Friedman, Oleg Kiselyov, and Will Byrd。它介绍了 miniKanren,一种基于 Scheme 构建的小型(三个核心运算符)逻辑编程语言。使用起来很有趣,尤其是使用允许统一模式匹配的 matche 宏。

【讨论】:

    【解决方案2】:

    Answer Set Programming 是一个极其强大的逻辑编程范例。我在clasp/clingo answer set solver 上取得了很大的成功。

    【讨论】:

      【解决方案3】:

      我是通过答案集编程了解 DLV 和模型的,这基本上是逻辑编程。

      【讨论】:

        【解决方案4】:

        看看定理证明助手,例如CoqHOLIsabelle

        有些类型系统(例如Agda2)也可以看作是逻辑编程。

        【讨论】:

        • 我不确定将 Coq 归类为逻辑编程语言是否准确。是否能像 Prolog 一样解决constraint satisfaction problems
        • 在 Coq 中可能可以进行统一和回溯,但它仍然有 several bugs 尚未更正。
        【解决方案5】:

        您可以查看 CLIPS。它的结构类似于 Lisp(很多括号),但它是为构建专家系统而设计的;我还没有看到 Prolog 解决了 CLIPS 无法解决的问题。与 Prolog 一样,它基于构建事实,然后针对它们运行查询。

        【讨论】:

        • 方法不同。 CLIPS 是一个“基于前向链接规则的系统”(如 Jess 用于 Java),不像 Prolog 是一个“基于后向链接规则的系统”(名义上基于经典一阶逻辑的片段和特定的建设性“定理证明者” “。它是非逻辑部分使它成为现实。现在......基于“逻辑”,一个人有一个总体计划正在计算什么,不像在前向链接器中实际发生的事情远不那么清楚。
        【解决方案6】:
        【解决方案7】:

        水星和奥兹浮现在脑海中。还有 Datalog,它是 Prolog 的受限(非图灵完备)版本。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-08-11
          • 1970-01-01
          • 1970-01-01
          • 2014-12-03
          • 2023-03-24
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多