首页 > 解决方案 > 为运行字节码编写 VM 的源代码

问题描述

你好!
我正在启动一个编程语言编译器项目,它生成字节码,然后由 VM(类似于 Java 的 JavaVM)运行。我试图模仿JavaVM,但是对于这个项目来说它太复杂了。我在网上搜索并找不到任何东西。

那么,您会推荐哪些资源来编写 VM(使用 C 或 C++)?

标签: compiler-constructionprogramming-languagesvm-implementation

解决方案


听起来你想要“简单”。

本文是关于复杂的字节码解释器。
为 Huffman 压缩字节码生成快速解释器 (Latendresse, Feeley)。但是,如果您了解如何构建复杂的,那么简单的应该很简单。

实际上有一个困难的部分:设计指令集。大多数情况下,您通过学习堆栈机器和寄存器机器来做到这一点,然后设计一些东西来平衡堆栈机器的简洁性和寄存器机器的效率。这篇论文Virtual Machine Showdown: Stack Versus Registers(作者 Anton Ertl 等人)很好地探索了权衡取舍。


推荐阅读