将prolog应用程序转换为基于JVM的语言?

时间:2014-01-14 08:53:07

标签: java clojure jvm prolog

我有一个中等大小的传统ISO prolog应用程序,我想转向基于JVM的语言。该应用程序是一个命令行工具,可以解析文本文件,执行一些评估/转换,然后导出基于文本的文件。

我的团队主要使用Java开发,因此我们拥有大量现有的Java权限和可重用的组件。然而Prolog的能力非常低。

我不希望有一个工具需要prolog源代码并将其转换为其他语言。但我试图了解什么是最简单的解决方案。从Java开始,还是使用像Clojure这样的功能更强大的语言?

4 个答案:

答案 0 :(得分:5)

  

但我正在努力了解什么是最简单的解决方案。

Prolog的一些实现在JVM平台上运行。维基百科在这里列出了其中5个:http://en.wikipedia.org/wiki/Comparison_of_Prolog_implementations。因此,最简单的解决方案是在Prolog中训练团队成员,并将应用程序移植到JVM Prolog实现中。 (这可能是一件简单的事情......)

您团队中的某个人可能需要Prolog技能才能成功将Prolog翻译成其他语言。


但是,我承认可能还有其他原因需要翻译;例如如果现有的Prolog代码无论如何都需要进行重大改革。

答案 1 :(得分:2)

这主要取决于您团队的技能。你提到你的团队有很好的Java技能;为什么不从那开始呢?

如果他们不了解LISP,他们将花费大量时间从头开始学习。学习LISP是一项相当大的投资,但最终肯定会付出代价。

虽然Clojure会在你的情况下为你提供很多帮助(因为数据流和数据转换),但我认为Java是一个更好的选择,因为你的团队能胜任它。

答案 2 :(得分:2)

您可以考虑将Clojure与core.logictutorial)一起使用,这是miniKanren实现。您需要一些逻辑/函数编程技能,但您可以继续使用JVM。

答案 3 :(得分:-2)

Prolog与java和其他面向对象语言有很大的不同。我研究了这种语言,看到了另一种编程方式。 但我不认为有一个神奇的解决方案将prolog应用程序转换为Java应用程序。逻辑是不一样的,没有其他语言像Prolog。我想你将不得不分析你的prolog应用程序的确切功能,并使用新的java应用程序从scractch开始。