我正在寻找使用Rubinius VM来创建语言,但只是阅读文档,我仍然很失落如何开始。即使看the projects,我仍然无法弄清楚解析和使用vm的位置。有没有人有这方面的资源?
答案 0 :(得分:4)
嘿,我是在rubinius上运行的Fancy语言的贡献者。如果您对解析感兴趣,请查看boot / rbx-compiler,您将找到一个基本构建AST节点树的Parser(用KPEG实现),每个节点都有一个生成rubinius vm的字节码方法一切工作的说明。花哨与ruby分享了很多语义,所以如果你已经熟悉ruby,我想从它开始会很容易。你只需要检查examples / dir,以便在探索编译器时对语言,然后是kpeg解析器,ast节点,加载器产生一种感觉。这些天Fancy是自举的(这意味着编译器本身就是编写的 - 在lib /编译器中)但是rbx-compiler是该过程的第一步。
希望探索Fancy的源代码对您有所帮助。
答案 1 :(得分:0)
如果你没有看到它,请查看Evan的keynote from 2011 LA Ruby Conf。他展示了如何构建一种可能有用的简单语言。