您好!
我正在启动一个编程语言编译器项目,它生成字节码,然后由VM运行(类似于Java的JavaVM)。我试图模仿JavaVM,但这个项目太复杂了。我在网上搜索过,找不到任何东西。
那么,你会建议用什么来源编写VM(用C或C ++)?
答案 0 :(得分:3)
听起来像你想要"简单"。
本文是关于复杂的字节码解释器 Generation of fast interpreters for Huffman compressed bytecode (Latendresse,Feeley)。但如果您了解如何构建复杂的,那么简单的应该很简单。
实际上很难实现:设计指令集。大多数情况下,您通过了解堆栈计算机和注册计算机,然后设计一些能够平衡堆栈计算机的简洁性和注册计算机效率的方法来实现这一点。本文Virtual Machine Showdown: Stack Versus Registers(由Anton Ertl等人)精心探讨了这种权衡。