【发布时间】:2010-06-02 18:28:43
【问题描述】:
我正在开发一种新语言。我最初的目标是为 Windows 平台编译为本机 x86,但现在我很怀疑。
我已经看到一些针对 JVM 的新语言(最著名的 Scala 和 Clojure)。当然,不可能将每种语言轻松移植到 JVM;这样做可能会导致语言及其设计发生小的变化。
提出这个问题后,我什至对这个决定产生了更多的怀疑。我现在知道一些“专业”的 JVM 参数。最初的问题是:在为新语言创建编译器时,以 JVM 为目标是个好主意吗?
更新了问题:在 Windows 上针对 JVM 而不是 x86 有什么缺点?
【问题讨论】:
-
没有动态输入?对于已经在 JVM 上运行的动态类型脚本语言来说,这将是一个惊喜……
-
好问题,非常有趣。我建议你加强标题,让它提到使用 JVM 编译器的意图。
-
而且没有“本机动态类型”之类的东西。 VM 运行时要么支持它,要么不支持,对于这种概念来说,本机机器的级别太低了。
-
@skaffman,因为静态类型是动态类型 VM 的高级概念,动态类型是静态类型 VM 的高级概念。比方说:“原生”是指它是在最低级别实现的,而不是在更高级别。
-
@Michael Borgwardt:他们不会通过奇异的扭曲来使其工作,而是通过奇异的扭曲来使其快速。但这并不是 JVM 独有的。本地实现的动态语言也为了使其快速而进行奇怪的扭曲,这只是不同的扭曲。您是否研究过任何高性能 Smalltalk VM 的实现?实际上,HotSpot 是重新命名的高性能 Smalltalk VM!