假设赋值的目的是编写一个可以在 C 语言子集上工作的编译器(您可以假设任何语言的子集,只支持基本的脚本表达能力,而无需将复杂的事物作为对象)。
什么样的中间代码可以用来验证编译器的正确性?我正在与一位教授交谈,他谈到了这样一个事实,即他不知道该给他的学生什么作为用于“编译代码”的 VM,所以我想知道哪个可能是一个好的解决方案。
Subset of C -> Compiler -> Code? -> VM
其中代码可以是二进制格式,也可以是更好的 ASCII 格式(类似于伪 asm)。
我正在寻找已经制作的东西,而不是如何构建这个中间代码和 VM,只是一个简单易用的,可以用来测试一些已编译的程序..