【发布时间】:2011-01-17 18:21:16
【问题描述】:
我正在简要阅读Maxine,这是一个用 Java 编写的开源 JVM 实现。这对我来说听起来很循环。如果java需要虚拟机运行,那么虚拟机本身如何用Java编写(虚拟机代码不会需要虚拟机运行吗?等等)。
编辑:好的,所以我发现我忽略了 Java 不必在 VM 中运行的事实。那么如何解释如何用 LISP 编写 LISP 编译器呢?还是应该完全是一个新问题?
【问题讨论】:
-
Bjarne Stroustroup 不是第一个用 C++ 编写的 C++ 编译器(当时它还被称为“带类的 C”)?我认为这更令人印象深刻,因为 C++ 不是解释语言,但需要编译器!
-
这正是我不明白的:)
-
新龙之书,第一版(远离充满错误的第二版)解释了编译器引导。
-
在极端情况下,您可以用 Java 编写汇编器和链接器(汇编器没有什么神奇之处)。您可以用 Java 为 Java 源代码编写解析器。您可以基于生成程序集的新解析器编写编译器,您可以使用汇编器和链接器将其组装并链接到本机可执行文件。
标签: java jvm bootstrapping