The Kai Way

Pragmaticly hacking

毕业设计题目确定

| Comments

现在就要准备毕业设计了,打算暑假留在学校这里。编译器不是个简单的东西,就算做出来了,如主任说的“千里马需要伯乐,如果你做了这个出来,老师们没有兴趣看这个,那也没用。”

其实现在是想作编译器,但是最后可能会做出一个C语言的解析器(让C动起来)的东西,很难说。最近在关注一个Ruby VM,Rubinius,想让Ruby实现Ruby VM的项目。这个东西满有参考价值的,而且可以的话我也想参与到其中。而Rubinius的开发方式是挺特别的,大家都可以提交mspec(用BDD的形式描述VM的运行),然后项目开发者们就实现相关的代码,过几天我把我从Rubinius那里了解到的东西写一下。或许还会翻译一些Rubinius的文档。

要作编译器或者VM,那需要编译原理等知识,下面列举一下所需知识和资料:

程序设计语言原理,其中包括语法,语义的解析等等。《SICP》,《程序设计语言实践之路》。 编译原理,其中包括代码解析,运行时环境构建等等。《编译原理2e》,《现代编译原理-C语言描述》(龙虎两书)

我其实是想在这个过程中学习到更多东西,如果真的可以写出来的话,自己的思想应该就不会像现在那么幼稚了。做个编译器/解析器的第一步应该就是能做出一个Scheme的解析器。


Update at 2012

当时是这么想的,但是最后只是做了REE的GC分析。