哪些应用程序虚拟机是用高级语言编写的?

发布于 2024-08-30 14:52:52 字数 122 浏览 3 评论 0原文

有哪些应用程序虚拟机是用高级语言编写的? C/C++ 看起来像是首选语言(原因显而易见)。

我在谷歌上发现至少有两个用Java编写的(都是元循环): JikesRVM 和玛克辛。

你还发现了什么吗?

What application virtual machines are out there that are written in higher level languages? C/C++ looks like the languages of choice (for obvious reasons).

What I have found on google is at least two written in Java (both meta-circular) :
JikesRVM and Maxine.

Anything else that you have found?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

甜警司 2024-09-06 14:52:52
  • 许多Scheme实现都是用Scheme编写的,尽管其中许多是编译器或解释器,其中一些是VM,
  • 一些CommonLisp实现是用CommonLisp编写的,尽管其中许多是编译器或解释器,其中一些是VM,
  • PyPy VM 是用 RPython 编写的,RPython 是 Python 的子集,具有“Python 的语法和语义、C 的速度、Java 的限制”和像 MUMPS 一样可穿透的编译器错误消息”,
  • Squeak Smalltalk VM 是用俚语(Squeak Smalltalk 的子集)编写的而
  • Klein Metacircular VM 完全是用 Self 编写的。

其中,最有趣的是 Klein 和 Maxine(其设计实际上是基于 Klein 的)。 Metacircular Lisp 和Scheme 实现通常假设存在一些基本的原始特殊形式,然后必须以汇编语言、C 语言或该语言的有限子集以低级样式实现它们。 Squeak 和 PyPy 使用该语言的有限子集。吉克斯使用“神奇”的方法和低级的风格。

Klein 和 Maxine 的想法是,一切都是以高级的、面向对象的、富有表现力的、惯用的风格编写的。在当前版本的Klein中,只有两个微小的地方受到了一些限制:在消息发送的实现中,你不能发送任何消息;在对象克隆的实现中,你不能克隆任何对象。然而,当前的编译器实际上可以内联甚至完全优化对象克隆和消息发送,因此这两个地方可以用正常的 OO Self 风格重写——只是还没有人这样做。

所有这些都只是超圆形虚拟机。还有其他用高级语言编写的 VM:

  • HotRuby 是一个 Ruby VM(实际上是一个 YARV VM) Red Sun是用 JavaScript 编写的,
  • 是用 ActionScript 编写的 Ruby VM(实际上是 YARV VM),
  • Rava 是一个用 Ruby 编写的类 JVM 虚拟机作者:Koichi "ko1" Sasada,YARV 的作者,
  • Ruva 是一个用 Ruby 编写的类 JVM 虚拟机
  • Many Scheme implementations are written in Scheme and although many of those are compilers or interpreters, some of those are VMs,
  • some CommonLisp implementations are written in CommonLisp and although many of those are compilers or interpreters, some of those are VMs,
  • the PyPy VM is written in RPython, which is a subset of Python with "syntax and semantics of Python, speed of C, restrictions of Java and compiler error messages as penetrable as MUMPS",
  • the Squeak Smalltalk VM is written in Slang (a subset of Squeak Smalltalk) and
  • the Klein Metacircular VM is written entirely in Self.

Of those, the most interesting are Klein and Maxine (whose design is actually based on Klein). Metacircular Lisp and Scheme implementations usually assume the existence of some basic primitive special forms, which then have to be implemented in assembler, C or a limited subset of the language in a low-level style. Squeak and PyPy use a limited subset of the language. Jikes uses "magic" methods and low-level style.

The idea of Klein and Maxine is that everything is written in high-level, object-oriented, expressive, idiomatic style. In the current version of Klein, there are only two tiny places where the style is hampered by some restriction: in the implementation of message sending, you cannot send any messages and in the implementation of object cloning you cannot clone any objects. However, the current compiler can actually inline or even completely optimize away object cloning and message sending, so those two places could be rewritten in normal OO Self style – it's just that nobody has done it yet.

All of that was just metacircular VMs. There's also other VMs written in high-level languages:

  • HotRuby is a Ruby VM (actually, a YARV VM) written in JavaScript,
  • Red Sun is a Ruby VM (actually, a YARV VM) written in ActionScript,
  • Rava is a JVM-like VM written in Ruby by Koichi "ko1" Sasada, the author of YARV and
  • Ruva is a JVM-like VM written in Ruby
花落人断肠 2024-09-06 14:52:52

更多的VM实现是用TCL(工具命令语言)和lua(有时称为java)实现的,还有一些是用汇编程序编写的。其他变体是用制造商的计算机硬件系统编程语言编写的。

Some more VM implementations are in TCL (tool command language) and lua (sometimes named as java) and some are written in an assembler. Other variants are written in a computer hardware system programming language of the manufacturer.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文