我正在尝试使用Rubinius VM来创建一种语言,但是仅仅阅读文档,我仍然对如何开始感到迷茫。即使看一下the projects,我似乎仍然不能弄清楚解析和使用vm的地方在哪里。有没有人有任何资源来做这个?
发布于 2011-09-17 12:38:23
嘿,我是运行在rubinius上的Fancy language的贡献者。如果你对解析感兴趣,看看boot/rbx编译器,你会在那里找到一个解析器(用KPEG实现),它基本上构造了一个AST节点树,每个节点都有一个字节码方法,它为一切工作生成rubinius vm指令。Fancy与ruby有很多语义上的共同点,所以我想如果你已经熟悉ruby,那么从它开始会很容易。您只需查看示例/目录,以便了解该语言,然后在探索编译器时使用kpeg解析器、ast节点、加载器。如今,Fancy是自举的(这意味着编译器是用奇特的自身编写的-在lib/编译器上),但rbx-compiler是这个过程的第一步。
希望探索Fancy的源代码能对你有所帮助。
发布于 2013-02-04 02:38:09
如果你还没有看过,可以看看埃文的keynote from 2011 LA Ruby Conf。他展示了如何构建一种简单的语言,这可能会有所帮助。
https://stackoverflow.com/questions/7296735
复制相似问题