我有一个中等大小的传统ISO prolog应用程序,我想转向基于JVM的语言 . 该应用程序是一个命令行工具,它解析文本文件,进行一些评估/转换,然后导出基于文本的文件 .
我的团队主要使用Java开发,因此我们拥有大量现有的Java权限和可重用的组件 . 然而,Prolog的能力非常低 .
我不希望有一个工具需要prolog源代码并将其转换为其他语言 . 但我试图了解什么是最简单的解决方案 . 从Java开始,还是使用像Clojure这样的功能更强大的语言?
Prolog与java和其他面向对象语言有很大的不同 . 我研究了这种语言,看到了另一种编程方式 . 但我不认为有一个神奇的解决方案将prolog应用程序转换为Java应用程序 . 逻辑是不一样的,没有其他语言像Prolog . 我认为你必须分析你的prolog应用程序的确切做法,并从scractch开始使用新的java应用程序 .
这主要取决于您团队的技能 . 你提到你的团队有很好的Java技能;为什么不从那开始呢?
如果他们不了解LISP,他们将花费大量时间从头开始学习 . 学习LISP是一项相当大的投资,但最终肯定会付出代价 .
虽然Clojure会在你的情况下为你提供很多帮助(因为数据流和数据转换),但我认为Java是一个更好的选择,因为你的团队能胜任它 .
您可以考虑将Clojure与core.logic(tutorial)一起使用,这是一个miniKanren实现 . 您需要一些逻辑/函数编程技能,但您可以留在JVM上 .
但我正在努力了解什么是最简单的解决方案 .
Prolog的一些实现在JVM平台上运行 . 维基百科在这里列出其中5个:http://en.wikipedia.org/wiki/Comparison_of_Prolog_implementations . 因此,最简单的解决方案是在Prolog中训练团队成员,并将应用程序移植到JVM Prolog实现中 . (这可能是一件简单的事......)
无论如何,团队中的某个人可能需要Prolog技能才能成功将Prolog翻译成其他语言 .
但是,我认识到可能还有其他原因需要翻译;例如如果现有的Prolog代码无论如何都需要进行重大改革 .
4 回答
Prolog与java和其他面向对象语言有很大的不同 . 我研究了这种语言,看到了另一种编程方式 . 但我不认为有一个神奇的解决方案将prolog应用程序转换为Java应用程序 . 逻辑是不一样的,没有其他语言像Prolog . 我认为你必须分析你的prolog应用程序的确切做法,并从scractch开始使用新的java应用程序 .
这主要取决于您团队的技能 . 你提到你的团队有很好的Java技能;为什么不从那开始呢?
如果他们不了解LISP,他们将花费大量时间从头开始学习 . 学习LISP是一项相当大的投资,但最终肯定会付出代价 .
虽然Clojure会在你的情况下为你提供很多帮助(因为数据流和数据转换),但我认为Java是一个更好的选择,因为你的团队能胜任它 .
您可以考虑将Clojure与core.logic(tutorial)一起使用,这是一个miniKanren实现 . 您需要一些逻辑/函数编程技能,但您可以留在JVM上 .
Prolog的一些实现在JVM平台上运行 . 维基百科在这里列出其中5个:http://en.wikipedia.org/wiki/Comparison_of_Prolog_implementations . 因此,最简单的解决方案是在Prolog中训练团队成员,并将应用程序移植到JVM Prolog实现中 . (这可能是一件简单的事......)
无论如何,团队中的某个人可能需要Prolog技能才能成功将Prolog翻译成其他语言 .
但是,我认识到可能还有其他原因需要翻译;例如如果现有的Prolog代码无论如何都需要进行重大改革 .