【发布时间】:2014-05-29 03:59:07
【问题描述】:
这是我的第一篇文章,我是通过手机发帖的,所以请原谅我肯定会遇到的格式问题。
正如标题所示,我想为自己编写的小型虚拟机创建一种语言。目前我的虚拟机非常简单,支持大约 16 种不同的操作码。我一直在慢慢学习如何优化 VM 并为其添加更多功能。我想添加的最大功能是能够用简单的 C 派生语言编写程序。
我什至不知道如何开始编写这样的“语言”。我会把它写成一个翻译成我的虚拟机汇编代码的解释器吗?
任何帮助都会很棒。文章、书籍、讲座,我什么都愿意。我只是喜欢学习,到目前为止,这是我参与过的最大的项目,也是迄今为止我最喜欢的项目。
编辑
我希望我在正确的领域提出了问题,并且如果需要,我非常愿意在早上提供更多信息。
【问题讨论】:
-
您基本上是在考虑移植一些工具链来为您的机器创建二进制文件。对于编译器部分,您只需要创建自定义后端。由于 GCC 和 LLVM 是两个流行的选项,你应该看看那里。
-
我认为这是正确的词,工具链。但是,我从未打算将其编译为本机代码。更多的是编写一种基于 C 的小型语言,该语言可以编译成我的 VM 可执行格式。
-
从阅读有关编译器的书开始。
-
有什么建议吗?我已经订购了一本《龙之书》,但我犹豫是否要购买任何...更现代的...书籍。
-
您正在制作编译器。目标“本机”代码恰好是您的人工指令集。
标签: assembly language-design vm-implementation compiler-construction