什么阻止了有效的Haskell虚拟机(如JVM)?

ael*_*ndy 27 haskell jvm vm-implementation

我一直想知道,是什么阻碍了像JVM或PyPy for Haskell这样的高效虚拟机的开发(除了可能的开发工作)?是语言结构吗?我认为难以有效解释的语言(如Python,非常动态)已经拥有了不错的虚拟机.

另外,如果没有什么阻碍这样的实现,那么STG是否是一个很好的目标"字节码",因为所有优化都是在Core上完成的?

是否有讨论此主题的文章或博客文章?

编辑:

  • 我知道HaLVM,但我认为这不是我的意思.
  • 我也知道runhaskell,但它根本没有效率.

ste*_*ley 22

什么阻止了高效的Haskell虚拟机?

没什么 - 已经有一个,Daan Leijen的LVM.它足够有效地用于Helium的运行时系统(来自乌得勒支大学的Haskell"教学语言").

那说我现在不知道它是否被使用,所以问题是"什么阻止了高效的Haskell虚拟机?" 可以回答人力,持续投资等.当Haskell已经有一个好的编译器时,一个好的VM就像Paulo Pinto已经注意到的那样奢侈.


小智 5

我没有办法发表评论,这可能更像是一个反VM而不是本机代码编译器,但OP可能对Reduceron感兴趣.


Ext*_*ity 5

UHC有一个Javascript后端,当然可以在浏览器的Javascript引擎上运行.我的意思是我没有看到任何阻止Haskell针对不同后端的东西.事实上,我认为UHC的设计目的是为了轻松定位不同的后端.


Pau*_*l R 5

我不知道这里有任何技术限制.有一种叫做Frege的语言,语义上接近Haskell,它的目标是JVM.因此,到目前为止,没有人考虑过Haskell-to-JVM编译器是值得的.事实上,作为一个JVM怀疑论者,我想知道它会带来什么.如果它只是中间语言可移植性,我宁愿在LLVM上工作,也不想在预构建的二进制服务器上工作.