python编译原理 书籍_有没有一些关于编译原理的书籍、博客的可以推荐?

参见 @萧井陌 的回答

如何去学习程序员的三大浪漫,编译原理,图形学,操作系统?​www.zhihu.com编译器你可以...

1. 先实现lisp语法的解释器(以后你可以拿这个金手指找别人约架...)

2. 把它编译成一个栈式虚拟机代码

3. 转换到汇编或者直接用虚拟机跑就随意了

至于写法呢,参见王垠的文章怎样写一个解释器​www.yinwang.org

对 Parser 的误解​www.yinwang.org

程序员们对于parser的误解,很大程度上来自于大学编译原理课程照本宣科的教育。很多老师自己都不理解编译器的精髓,所以就只有按部就班的讲一些“死知识”,灌输“业界做法”。一般大学里上编译原理课,都是捧着一本大部头的“龙书”或者“虎书”,花掉一个学期1/3甚至2/3的时间来学写parser。由于parser占据了大量时间,以至于很多真正精华的内容都被一笔带过:语义分析,代码优化,类型推导,静态检查,机器代码生成,…… 以至于很多人上完了编译原理课程,记忆中只留下写parser的痛苦回忆。

“龙书”之类的教材在很多人心目中地位是如此之高,被誉为“经典”,然而其实除了开头很大篇幅来讲 parser 理论,这本书其它部分的水准其实一般般。大部分学生的反应其实是“看不懂”,然而由于一直以来没有更好的选择,它经典的地位真是难以动摇。“龙书”后来的新版我浏览过一下,新加入了类型检查/推导的部分,可是我看得出来,其实作者们自己对于类型理论都是一知半解,所以也就没法写清楚。

如果你想真的深入理解编译理论,最好是从PL课程的读物,比如 EOPL 开始。我可以说 PL 这个领域,真的和编译器的领域很不一样。请不要指望编译器的作者能够轻易设计出好的语言,因为他们可能根本不理解很多语言设计的东西,他们只是会实现某些别人设计的语言。可是反过来,理解了 PL 的理论,编译器的东西只不过是把一种语言转换成另外一种语言(机器语言)而已。工程的细枝末节很麻烦,可是当你掌握了精髓的原理,那些都容易摸索出来。GTF - Great Teacher Friedman​www.yinwang.org

Dan Friedman 是 Indiana 大学的教授,程序语言领域的创始人之一。他主要的著作《The Little Schemer》(前身叫《The Little Lisper》) 是程序语言界最具影响力的书籍之一。现在很多程序语言界的元老级人物,当年都是看这本“小人书”学会了 Lisp/Scheme,才决心进入这一领域。

计算机前辈珠玉在前,晚辈遵循前人的教导就好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值