如何用Java编写JVM

kji*_*kji 37 java bootstrapping jvm

我简要介绍了Maxine,这是一个用Java编写的开源JVM实现.这对我来说是圆形的.如果java需要运行虚拟机,那么虚拟机本身如何用Java编写(VM代码不会需要运行的VM,依此类推?).

编辑:好的,所以我看到我忽略了Java不必在VM中运行的事实.那么如何解释如何在LISP中编写LISP编译器?或者这应该是一个新问题?

Ign*_*ams 15

您认为Java需要虚拟机的假设不正确.


Thi*_*ilo 7

引导用Java编写的JVM所需的JVM可能不需要很多功能(例如垃圾收集和JIT),可能非常简单.然后,所有更高级的功能都可以用Java实现(这似乎正是Maxine的要点,试验JVM技术中的新想法).

此外,Maxine确实包含C代码,我猜这个代码构成了一个最小的运行时环境,用于获取Maxine的其余部分.我认为有趣的位(JIT编译器,垃圾收集)然后完全用Java实现.