为什么没有一门语言是能够自己写一个自己的编译器,来作为教材的,貌似看到 Haskell 有说怎么实现数据结构的,scheme 有说自己怎么做编译器还是解释器的(sicp)。其余的语言就没有消息了........
教科书还是重理论吧,貌似教程和演讲有一些..
ruby 的有个半小时写解释器的演讲: 还有个 jsjs,不过是用 emscripten 转的,有个 paper: http://jeffterrace.com/docs/jsjs.pdf
本身自己描述自身就是难点。 摘自知乎: 在编译原理的世界里,自举是一个很重要的话题。一个很经典的例子:GCC 语言的编译器是 C 语言写的,但第一个 GCC 编译器是用另一个编译器编译的;那么顺着这个根源向下跟踪,我们迟早必须回答这个问题,即世界上第一个编译器是什么语言写的——答案是汇编。那么这样下去,我们最终发现,任何程序设计语言都不能完全用自己描述自己。
#30 楼 @ptmagic 不了解... 如果 lisp 有类似 esoteric languages implemented in ruby 这样的书的话应该也挺牛逼的
话说作者还写过自制 OS, 萌化版自制 CPU 之类的奇书...