当甲骨文通过Dalvik VM起诉Google时,很明显,未经Oracle许可,您不能实现Java VM(编辑:Matthew Flaschen指出,甲骨文的主张可能无效。无论如何,我们目前处于一种情况下,甲骨文威胁到VM的实现。)。这可能会成为Java的开源实现(例如Apache Harmony)的死亡。
我不想讨论此诉讼的影响或合法性。但是作为一名Java程序员,我想更深入地研究替代方案,以便为每种情况做好准备。当我将编译器的创建视为一个小问题时,我的主要兴趣是替代的VM实现,其实现与JVM相似的目的。
我要寻找的VM应该满足一些条件:
请为我添加一些建议。
最佳答案
LLVM是一个非常好的优化底层虚拟机。它可以支持C和C++之类的语言,并且未内置对垃圾收集等高级功能的支持。
VMKit是LLVM之上的Java和CLI虚拟机的实现。由于它使用Java字节码,因此这可能无助于解决专利问题。
HLVM是在LLVM之上构建的另一个有趣的高级虚拟机。它可能与避免大多数众所周知的专利有所不同,但是它主要针对数值计算和函数编程。
在动态类型化的一侧,有Parrot。
我实际上正在为自己设计的语言开发编译器和VM,但不要指望它能完成。 ;-)
请记住,任何大型软件都会侵犯众多专利,重要的是它们的知名度(以及专利拥有者积极寻找侵权者的程度)。当然,整个专利制度是荒谬的,而摆脱它会更好。