Sam*_*ami 43 java prolog logic-programming embedded-language constraint-programming
我正在开发一个Java应用程序,它需要做一些复杂的逻辑规则推导作为其功能的一部分.我想在Prolog或其他逻辑/约束编程语言而不是Java中编写我的逻辑演绎编码,因为我相信生成的代码将更加简单和易于维护.
我在Prolog上搜索了嵌入式Java实现,并发现了它们的数量,每个都只有很少的文档.我的(适度)选择标准是:
我有什么选择,它们的优点和缺点是什么?
SWI prolog一个非常流行的实现似乎有一个Java接口和SiCStus一样,这比使用JNI在Java进程中实例化一个实例更容易.我很久以前就使用了C和推荐它们.我的首选是SWI,因为它是开源的,根据我的经验,事实上的实现.
SWI Java接口的文档似乎已经足够,嵌入过程非常简单.
我需要在2年前做同样的事情.我使用了名为JPL的SWI接口.它允许您加载Prolog文件,在其上断言并查询它.它确实需要安装SWI Prolog,但这根本不是问题.SWI Prolog 适用于许多平台.
我也尝试过用Java实现100%并且不需要外部程序的替代方案.所有这些都是马车或难以使用.不要浪费你的时间.
Clojure是一种基于 JVM 的类 Lisp 语言,具有支持逻辑和基于约束的编程的库 ( core.logic )。Clojure 还具有大量用于生成 Java 类和使用 Java 代码的工具,因此两种语言之间的互操作很简单。
| 归档时间: |
|
| 查看次数: |
10134 次 |
| 最近记录: |