85

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

Sourceforge 上存在 JHaskell,但这个似乎是空的和死的。

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

4

4 回答 4

83

您可能想调查Frege。从该页面引用:

“Frege 是一种非严格的、纯函数式编程语言,它秉承了 Haskell 的精神。”

“Frege 程序被编译成 Java 并在 JVM 中运行。”

基于对语言规范的简要阅读,弗雷格看起来几乎是 Haskell 的克隆。也许“本着 Haskell 的精神”这句话只是为了设定正确的期望。

于 2011-09-16T19:49:05.273 回答
28

Haskell 在 JVM 上运行良好。请参阅Eta,这是一个将完整的 GHC 7.10.3 Haskell 引入 JVM 并具有类型安全 Java 互操作性的项目。

于 2017-01-13T13:32:19.003 回答
12

我知道在 JVM 中接近 haskell 的唯一语言是 CAL。CAL 很大程度上基于haskell,但它并不具备haskell 的所有功能。类型系统类似于 Haskell 98,但do缺少语法糖之类的符号。

这是 Haskell 和 CAL 的比较:CAL for Haskell Programmers

eclipse 插件非常精致和有用。

请注意,CAL 是 Open Quark 框架的一部分。

于 2011-09-02T13:11:58.707 回答
9

将 GHC 构建到 JVM 存在很大但可以克服的障碍:

http://www.haskell.org/haskellwiki/GHC:FAQ#Why_isn.27t_GHC_available_for_.NET_or_on_the_JVM.3F

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

于 2012-02-20T00:37:38.360 回答