我有个朋友说:
对我来说,Haskell最有趣的不是语言和类型。这是它背后的无刺无标记图片机。
因为哈斯克尔人总是在谈论类型,这句话引起了我的注意。现在我们可以查看Haskell编译过程像这样。
我们可以将其简化为:
Ie -在将Haskell编译到LLVM/C等之前,会有一种中间的“图形语言”被编译,并在此进行各种优化。
这与如下所示的JVM语言编译过程形成了对比:
假设可以在Java编译过程中添加一个中间STG编译步骤,我想知道这个更改会产生什么影响?编译后的代码会发生什么变化?
(我知道,您需要一种纯函数式语言来最大限度地利用无刺无标记的图形机器,所以如果回答这个问题很有帮助,那么假设我们正在为弗雷格编译Haskell。)
我的问题是:如果JVM语言编译过程有像Haskell这样的STG阶段,那么会发生什么变化?。
发布于 2016-01-01 09:48:57
您需要澄清您是指Java语言还是在JVM上运行的某种语言。
我对Java语言的了解仅限于阅读了规范,而我对您正在谈论的Haskell IR一无所知。然而,根据规范,Java是一种动态语言,执行任何使用每个结束类文件之外的任何信息的AOT xform都是非法的。
当然,不使用这些特性的项目可能会违反这些规则。
https://stackoverflow.com/questions/34554926
复制相似问题