3

我正在寻找使用 Rubinius VM 来创建一种语言,但只是阅读文档,我仍然对如何开始感到迷茫。即使查看项目,我似乎仍然无法弄清楚解析和使用 vm 的位置。有没有人有这方面的资源?

4

2 回答 2

4

嘿,我是在 rubinius 上运行的 Fancy 语言的贡献者。如果您对解析感兴趣,请查看 boot/rbx-compiler 那里您会发现一个解析器(使用 KPEG 实现),它基本上构建了一个 AST 节点树,每个节点都有一个生成 rubinius vm 的字节码方法一切正常工作的说明。Fancy 与 ruby​​ 共享很多语义,所以我想如果您已经熟悉 ruby​​,那么从它开始会很容易。随着您对编译器的探索,您只需要查看示例/目录即可了解该语言,然后查看 kpeg 解析器、ast 节点、加载程序。现在 Fancy 是自举的(这意味着编译器本身是用 fancy 编写的——在 lib/compiler 中),但 rbx-compiler 是该过程的第一步。

希望探索 Fancy 的源代码对您有所帮助。

于 2011-09-17T04:38:22.650 回答
0

如果您还没有看过它,请查看 Evan在 2011 LA Ruby Conf 上的主题演讲。他展示了如何构建一种简单的语言,这可能会有所帮助。

于 2013-02-03T18:38:08.720 回答