compiler-construction - 为运行字节码编写 VM 的源代码

标签 compiler-construction programming-languages vm-implementation

<分区>

您好!
我正在启动一个编程语言编译器项目,该项目生成字节码,然后由 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/

相关文章:

performance - Swift 显式与推断类型 : Performance

java - 在另一个进程(VM)中启动Java main

programming-languages - 这是什么代码语言?

language-agnostic - 使用头文件有什么好处和坏处?

PHP:准备好的语句,IF 语句需要帮助

bytecode - 以字节码格式存储值

performance - VM设计:更多操作码还是更少操作码?什么是更好的?

c++ - 在 Xcode 5 中找不到 glm/glm.hpp 文件

c++ - C++11标准是否保证initializer_list对象的内存布局是交叉编译器兼容的?

jvm - 为什么JVM是基于堆栈的而Dalvik VM是基于寄存器的?