JVM上的Haskell?

时间:2011-08-31 17:38:41

标签: haskell jvm jvm-languages frege

我想知道是否有某种方法可以让Haskell在JVM上运行(编译或解释)?

Sourceforge上存在JHaskell,但这个似乎是空的并且已经死了。

GHC使用LLVM作为编译器后端。将LLVM编译为Java字节码是一个好主意还是可能的?或者可能使用不同的编译器后端?

4 个答案:

答案 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

(有一两年的时间来实现它吗?)