compiler-construction - 为运行字节码编写 VM 的源代码
问题描述
你好!
我正在启动一个编程语言编译器项目,它生成字节码,然后由 VM(类似于 Java 的 JavaVM)运行。我试图模仿JavaVM,但是对于这个项目来说它太复杂了。我在网上搜索并找不到任何东西。
那么,您会推荐哪些资源来编写 VM(使用 C 或 C++)?
解决方案
听起来你想要“简单”。
本文是关于复杂的字节码解释器。
为 Huffman 压缩字节码生成快速解释器
(Latendresse, Feeley)。但是,如果您了解如何构建复杂的,那么简单的应该很简单。
实际上有一个困难的部分:设计指令集。大多数情况下,您通过学习堆栈机器和寄存器机器来做到这一点,然后设计一些东西来平衡堆栈机器的简洁性和寄存器机器的效率。这篇论文Virtual Machine Showdown: Stack Versus Registers(作者 Anton Ertl 等人)很好地探索了权衡取舍。
推荐阅读
- php - Laravel:如何从数据透视表中获取记录?
- microsoft-graph-api - Microsoft Graph API BETA - 检索事件日历返回意外日历
- javascript - Reg Exp 格式为 MM/YY 的日期
- jquery - 按键时将文本复制到剪贴板
- javascript - ReactJS Ant Design - 在 DatePicker 中禁用小于任何默认日期的日期
- reactjs - 单击链接时组件未重新呈现
- linux - 如何从 dhcpd.conf 中删除租约?
- java - Java ClassPath.from Guava 问题 - 扫描 windows/sys32 目录
- html - 当元素有更多带有文本的元素时获取元素的文本
- javascript - 从父选择器中移除类