gpt4 book ai didi

compiler-construction - 面向 JVM 而不是 x86 的缺点是什么?

转载 作者:行者123 更新时间:2023-12-04 00:53:30 28 4
gpt4 key购买 nike

我正在开发一种新语言。我最初的目标是为 Windows 平台编译为原生 x86,但现在我有疑问。

我见过一些针对 JVM 的新语言(最著名的是 Scala 和 Clojure)。当然,将每种语言轻松移植到 JVM 是不可能的;这样做可能会导致语言及其设计的微小变化。

提出这个问题后,我对这个决定更加怀疑了。我现在知道一些“专业”JVM 参数。最初的问题是:在为新语言创建编译器时,以 JVM 为目标是个好主意吗?

更新问题:在 Windows 上针对 JVM 而不是 x86 有什么缺点?

最佳答案

以 JVM 为目标是一种经过多次尝试和测试的方法。 Clojure、Scala、JRuby 和 many other languages 的事实这样做成功应该给你一些保证。

我的总体观点是 JVM 可能是目前新/实验性语言的最佳目标,特别是如果您希望在利用真正出色的 JIT 编译器和大量非常强大的库的同时实现跨平台功能。

话虽如此,在我看来,您可能遇到的针对 JVM 的主要缺点如下:

  • 缺乏字节码级别的尾递归支持。有一些方法可以解决这个问题(例如,请参阅 Clojure 的“recur”特殊形式),但是对于某些语言实现,尤其是函数式语言,这很烦人。最终可能会在 Java 的 future 版本中得到修复。
  • 有点明显,但是您需要在客户端上安装 JVM。现在通常不是问题,但在某些情况下这可能会很棘手。
  • Java 中的基元(int、long、float 等)的行为与对象系统的其余部分不同。同样,您可以解决这个问题,但这对语言实现者来说是一些额外的麻烦。

  • 一些可能有用/有趣的链接:
  • ASM bytecode analysis and manipulation framework .这是一个很棒的工具,
    我相信这就是 Clojure 在幕后使用的东西。
  • Clojure source code
  • 关于compiler-construction - 面向 JVM 而不是 x86 的缺点是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2960440/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com