有哪些用高级语言编写的应用程序虚拟机?C/C++ 看起来像是首选语言(原因很明显)。
我在谷歌上找到的至少有两个用 Java 编写(都是元循环):JikesRVM 和 Maxine。
你还发现了什么?
有哪些用高级语言编写的应用程序虚拟机?C/C++ 看起来像是首选语言(原因很明显)。
我在谷歌上找到的至少有两个用 Java 编写(都是元循环):JikesRVM 和 Maxine。
你还发现了什么?
其中,最有趣的是 Klein 和 Maxine(他们的设计实际上是基于 Klein)。Metacircular Lisp 和 Scheme 实现通常假设存在一些基本的原始特殊形式,然后必须以汇编程序、C 或语言的有限子集以低级样式实现。Squeak 和 PyPy 使用有限的语言子集。Jikes 使用“魔术”方法和低级风格。
Klein 和 Maxine 的想法是,一切都是用高级的、面向对象的、富有表现力的、惯用的风格编写的。在当前版本的 Klein 中,只有两个很小的地方样式受到一些限制:在消息发送的实现中,您不能发送任何消息;在对象克隆的实现中,您不能克隆任何对象。但是,当前的编译器实际上可以内联甚至完全优化掉对象克隆和消息发送,所以这两个地方可以用普通的 OO Self 样式重写——只是还没有人做过。
所有这些都只是元循环虚拟机。还有其他用高级语言编写的 VM:
更多的 VM 实现是用 TCL(工具命令语言)和 lua(有时称为 java),还有一些是用汇编程序编写的。其他变体是用制造商的计算机硬件系统编程语言编写的。