<分区>
您好!
我正在启动一个编程语言编译器项目,该项目生成字节码,然后由 VM(类似于 Java 的 JavaVM)运行。我试图模仿 JavaVM,但对于这个项目来说太复杂了。我在网上搜索但找不到任何内容。
那么,您会推荐哪些来源来编写 VM(使用 C 或 C++)?
<分区>
您好!
我正在启动一个编程语言编译器项目,该项目生成字节码,然后由 VM(类似于 Java 的 JavaVM)运行。我试图模仿 JavaVM,但对于这个项目来说太复杂了。我在网上搜索但找不到任何内容。
那么,您会推荐哪些来源来编写 VM(使用 C 或 C++)?
最佳答案
听起来你想要“简单”。
这篇论文是关于复杂的字节码解释器的。
Generation of fast interpreters for Huffman
compressed bytecode
(拉藤德烈斯,菲利)。但是,如果您了解如何构建复杂的,那么简单的应该很简单。
实际上有一个困难的部分:设计指令集。大多数情况下,您是通过学习堆栈机和寄存器机,然后设计一些东西来平衡堆栈机的简洁性和寄存器机的效率来做到这一点的。本文Virtual Machine Showdown: Stack Versus Registers (作者:Anton Ertl 等人)精美地探讨了权衡。
关于compiler-construction - 为运行字节码编写 VM 的源代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50748317/