我想知道是否有某种方法可以让Haskell在JVM上运行(编译或解释)?
Sourceforge上存在JHaskell,但这个似乎是空的并且已经死了。
GHC使用LLVM作为编译器后端。将LLVM编译为Java字节码是一个好主意还是可能的?或者可能使用不同的编译器后端?
答案 0 :(得分:77)
您可能需要调查Frege。从该页面引用:
“Frege是一种非严格的纯函数式编程语言,本着Haskell的精神。”
“Frege程序编译为Java并在JVM中运行。”
基于对语言规范的简要阅读,Frege看起来几乎是一个Haskell克隆。或许“在Haskell的精神中”这句话很简单,旨在设定适当的期望。
答案 1 :(得分:20)
Haskell在JVM上运行得很漂亮。请参阅Eta,这是一个将完整的GHC 7.10.3 Haskell带入类型安全的Java互操作JVM的项目。
答案 2 :(得分:11)
我知道在JVM中接近haskell的唯一语言是CAL。 CAL主要基于haskell,但它没有haskell的所有功能。类型系统类似于Haskell 98,缺少类似do
符号的句法糖。
以下是Haskell和CAL的比较:CAL for Haskell Programmers
eclipse插件非常精致且有用。
请注意,CAL是Open Quark框架的一部分。
答案 3 :(得分:9)
对于JVM建立GHC存在重大但可克服的障碍:
http://www.haskell.org/haskellwiki/GHC:FAQ#Why_isn.27t_GHC_available_for_.NET_or_on_the_JVM.3F
(有一两年的时间来实现它吗?)