哪些应用程序虚拟机是用高级语言编写的?
-
01-10-2019 - |
题
哪些应用程序虚拟机用更高级别的语言编写? C/C ++看起来像是选择的语言(出于明显的原因)。
我在Google上发现的内容至少是用Java(都元圆形)编写的:Jikesrvm和Maxine。
您发现的还有什么?
解决方案
- 许多方案实施都是用计划编写的,尽管其中许多是编译器或口译员,但其中一些是VM,
- 一些普通LISP的实现是在CommonLisp中编写的,尽管其中许多是编译器或口译员,但其中一些是VM,但
- 这 pypy VM用Rpython编写,这是Python的子集,上面有“ Python的语法和语义,C速度,Java的限制和编译器错误消息,如腮腺炎,
- 这 尖叫Smalltalk VM 用lang(吱吱作响的Smalltalk的子集)和
- 这 klein元元VM 完全用自我写。
其中,最有趣的是克莱因(Klein)和马克西(Maxine)(其设计实际上是基于克莱因(Klein))。 Metacircular LISP和方案实现通常假设存在一些基本的原始特殊形式,然后必须以低级样式在汇编器,C或有限的语言子集中实现。吱吱声和PYPY使用该语言的有限子集。 Jikes使用“魔术”方法和低级样式。
克莱因和马克西恩的想法是 一切 以高级,面向对象,表现力,惯用风格编写。在当前版本的克莱因(Klein)中,只有两个很小的地方受到某种限制的阻碍:在消息发送消息时,您不能发送任何消息,并且在实现对象克隆时,您不能克隆任何对象。但是,当前的编译器 能够 实际上,内联甚至完全优化了对象克隆和消息发送,因此可以以正常的OO自我风格重写这两个地方 - 只是没有人做到这一点。
所有这些都是元VM。还有其他使用高级语言编写的VM:
其他提示
TCL(工具命令语言)和LUA(有时称为Java)中有更多的VM实现,其中一些是在汇编程序中写的。其他变体是用制造商的计算机硬件系统编程语言编写的。
不隶属于 StackOverflow