比Prolog更新的编程语言用于逻辑编程

时间:2011-01-16 16:07:17

标签: programming-languages paradigms logic-programming

是否有比Prolog更专用于逻辑编程的新语言?

6 个答案:

答案 0 :(得分:9)

Mercury很好,很现代,类似于prolog。

  

Mercury是一种新的逻辑/函数编程语言,它将声明性编程的清晰度和表现力与高级静态分析和错误检测功能相结合。其高度优化的执行算法提供的效率远远超过现有的逻辑编程系统,并且接近传统的编程系统。 Mercury解决了大规模程序开发的问题,允许模块化,单独编译以及众多优化/时间权衡。

答案 1 :(得分:5)

有一种非常有前途的功能逻辑编程语言叫Curry。如果你已经了解Haskell和Prolog,它应该很容易习惯Curry,因为它直接受到这两种语言的影响。

  

Curry以无缝方式结合   功能编程的功能   (嵌套表达式,高阶   功能,懒惰评估),逻辑   编程(逻辑变量,   部分数据结构,内置   搜索)和并发编程   (并发评估表达式   与逻辑同步   变量)。

答案 2 :(得分:3)

Logtalk是一种面向对象的逻辑编程语言,它扩展和利用Prolog语言,其功能集适合大型编程,侧重于代码封装和重用机制。它是高度可移植的支持,作为后端编译器最积极地维护Prolog实现。其他值得注意的功能包括支持原型和类,协议(接口),coinduction,基于组件的编程,事件驱动编程和高级多线程编程。目前的发行版包括大量的编程示例,编程工具,库和文本编辑器以及支持编程和发布源代码的语法高亮显示器。

答案 3 :(得分:1)

Oz/Mozart是一种多范式编程语言,支持逻辑编程作为其中一项功能。我从来没有用过它所以我不能说它是否好。这当然看起来很有趣。

免责声明:我参与Mercury项目,并会选择水星作为Oz / Mozart和Mercury之间的选择。

答案 4 :(得分:1)

不要忘记,Prolog是许多新扩展程序的主机,可以将它们视为自己的语言。特别是约束语言,如CLP(R),CLP(Q),CLP(FD)。更常见的扩展,如CHR,但也有许多类型的方法。

这些语言通常作为现有Prolog系统中的库提供。您在该设置中获得的内容通常是比从头开始系统提供的更加成熟和稳定的实现。毕竟,许多Prolog系统已有近30年的历史。

答案 5 :(得分:1)

其他答案都没有提到Picat

<块引用>

Picat 是一种简单但功能强大的基于逻辑的多范式编程语言,旨在用于通用应用程序。 Picat 是一种基于规则的语言,其中谓词、函数和参与者是用模式匹配规则定义的。 Picat 结合了许多声明性语言功能,以提高软件开发的生产力,包括显式非确定性、显式统一、函数、列表推导式、约束和表格。 Picat 还提供命令式语言结构,例如赋值和循环,用于编程日常事物。 Picat 实现基于精心设计的虚拟机,并结合了内存管理器,可在需要时进行垃圾收集和扩展堆栈和数据区域,高效且可扩展。 Picat 不仅可以用于符号计算(这是声明式语言的传统应用领域),还可以用于脚本和建模任务。

Picat 看起来有点像 Prolog,但 Picat 是一种多范式语言:

import util.

input_data(Tri) => 
    Lines = read_file_lines("triangle.txt"),
    Tri = new_array(Lines.length),
    I = 1,
    foreach(Line in Lines)
        Tri[I] = Line.split().map(to_integer).to_array(),
    I := I+1
    end.