jvm - Java VM的替代品有哪些?

标签 jvm bytecode portability vm-implementation

当甲骨文通过Dalvik VM起诉Google时,很明显,未经Oracle许可,您不能实现Java VM(编辑:Matthew Flaschen指出,甲骨文的主张可能无效。无论如何,我们目前处于一种情况下,甲骨文威胁到VM的实现。)。这可能会成为Java的开源实现(例如Apache Harmony)的死亡。

我不想讨论此诉讼的影响或合法性。但是作为一名Java程序员,我想更深入地研究替代方案,以便为每种情况做好准备。当我将编译器的创建视为一个小问题时,我的主要兴趣是替代的VM实现,其实现与JVM相似的目的。

我要寻找的VM应该满足一些条件:

  • 没有专利授权书
  • 存在一个开源实现
  • 潜在的优化/良好性能
  • 独立于平台(可以将VM移植到不同平台而没有更大的障碍)

  • 请为我添加一些建议。

    最佳答案

    LLVM是一个非常好的优化底层虚拟机。它可以支持C和C++之类的语言,并且未内置对垃圾收集等高级功能的支持。

    VMKit是LLVM之上的Java和CLI虚拟机的实现。由于它使用Java字节码,因此这可能无助于解决专利问题。

    HLVM是在LLVM之上构建的另一个有趣的高级虚拟机。它可能与避免大多数众所周知的专利有所不同,但是它主要针对数值计算和函数编程。

    在动态类型化的一侧,有Parrot

    我实际上正在为自己设计的语言开发编译器和VM,但不要指望它能完成。 ;-)

    请记住,任何大型软件都会侵犯众多专利,重要的是它们的知名度(以及专利拥有者积极寻找侵权者的程度)。当然,整个专利制度是荒谬的,而摆脱它会更好。

    关于jvm - Java VM的替代品有哪些?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3600784/

    相关文章:

    c++ - 如何为C++编译运行创建一个.JSON任务? (VS代码)

    java - 如何从 jvmti 中的 jobject 获取类名

    java - jvm异常捕获

    actionscript-3 - 任何调试 ActionScript ByteCode 的工具?想观察寄存器、堆栈

    c++ - 轻量级可移植 C++ 线程

    c - 具有声音支持的良好可移植wiimote库?

    java - 在 64 位 Windows 中使用 32 位 Java

    c# - Java 的 JVM 和 .NET 的 CLR 的内部工作方式有什么区别?

    java - 执行一段字节码

    flash - 任何学习 FLASM(Flash 字节码)的好指南?