龙书虎书鲸书啃不动?试试豆瓣评分9.5的猴书
相传,编译原理界有三大圣书:
龙书是为Compilers: Principles, Techniques, and Tools;
虎书是为Modern Compiler Implementation in C;
鲸书是为Advanced Compiler Design and Implementation。
三大巨头名声在外,但要吃透其中奥妙绝非易事。
图灵君常常收到读者询问:有没有轻量级一些的编译原理入门教程,实战性很强的那种?
现在终于可以给出答案了!在介绍这套书之前,先来看看读者给出的这样一条评论:
“如果我被困在一座岛上,必须构建一门编程语言,那么这就是我要唯一带在身边的书。”
这套书的英文版具有很高的辨识度,并且在豆瓣上获得 9.5 和 9.4 的高分。
作者Thorsten Ball告诉图灵君,一直以来,有很多来自中国的编译器爱好者问他什么时候出中文版。现在,他终于可以分享好消息啦!
作者简介
索斯藤·鲍尔(Thorsten Ball),Sourcegraph软件工程师,精通多门程序设计语言,包括Go、C、JavaScript和Ruby,深谙编译原理、系统编程、Unix、数据库等相关技术。现居德国,长期活跃于欧洲各大技术大会。
如何阅读这套书
彩猴书——用Go语言自制解释器
从零开始,不用任何第三方包,从无到有手写一门类C语言——Monkey 语言。
你将为 Monkey 实现词法分析器、语法分析器、抽象语法树和宏系统。
你写的 Monkey 语言可以绑定值和名称:
let age = 1;
let name = "Monkey";
let result = 10 * (20 / 2);
也可以将数组绑定到一个名称上:
let myArray = [1, 2, 3, 4, 5];
还可以绑定函数和名称:
let add = fn(a, b) { return a + b; };
支持调用函数:
add(1, 2);
当然,在阅读过程中,你还将教会 Monkey 更多本领!
金猴书——用Go语言自制编译器
帮助 Monkey 进化,实现字节码编译器和虚拟机,使其性能提升到解释器时期的3倍。
必须先读彩猴书,再读金猴书吗?
两本书有一个进阶关系。虽然你完全可以按照自己的兴趣任意选择一本读,但最佳的阅读顺序仍然是先读彩猴书,再读金猴书。
这套书适合谁
为什么用Go语言?
Go语言很容易阅读和理解。即使对于初学者,这套书中的代码也浅显易懂。
此外,Go语言提供了出色的标准库和工具。仅用这些工具,不用任何第三方库,你就能写出解释器和编译器。
彩蛋:不止Go语言!
自从英文版出版以来,全世界的许多读者已经基于书中内容用其他语言实现了更多的 Monkey:Python、Java、Elixir、Rust、C、C++、TypeScript、C#、Dart、Haskell、V、PHP、Kotlin、Scala、Lua、Julia……
你也来快快加入挑战吧!参透程序设计语言的底层逻辑,用你最爱的语言实现 Monkey。
业内佳评
编译原理是我上过的最有用的大学课程。学习为“玩具语言”编写词法分析器和运行时,有助于揭开计算机科学的神秘面纱。我建议所有不熟悉词法分析器、语法分析器和求值器的软件开发工程师阅读这套书。
——米切尔·桥本 天才程序员
编译器和语言开发是门槛较高的领域。我作为从业者,经常遇到培养新人却无法很快上手的问题。这套书很好地解决了此问题,在降低门槛的同时,又不损失丰富性,全面展示了开发编译器和程序设计语言的要素,因此我向所有对此有兴趣的读者推荐这套书。
——史斌(benshi001) Go语言全球排名前50的贡献者
几年前看SICP的时候,我学习过如何写解释器。在书本上学习编译原理的过程是很枯燥的。这套书让我们可以一边学习理论,一边实践。我们能够看到,如何通过亲手实现解释器和编译器摆脱学习理论的枯燥过程。
——左书祺(@Draven) 云原生工程师、Kubernetes项目成员、《Go语言设计与实现》作者
如果你熟悉解释性语言,同时是Go语言爱好者,那么这套书就是为你编写的。使用Go语言从零实现一个解释器/编译器,不仅让你明白它们是如何工作的,而且你对Go语言也会有更深的理解。如果能够跟着书中内容实际动手实现一个解释器/编译器,那么你的技术一定会有很大的飞跃。
——徐新华 Go语言中文网站长、公众号“polarisxu”主理人
程序员的三大浪漫之一就是自制编程语言。得益于Go自身语法的简洁性和在工程方面的平衡性,这套书通过简明直接的代码,一步步地向读者揭示自制一门编程语言并不是高不可攀的事情。对于想自制编程语言又不想啃编译原理的读者,我推荐这套书。
——蒙卓(mengzhuo) Go项目成员
这是一套很好的书,我曾在学习Go语言的时候有幸拜读过。现在,它终于有中译本了。自制解释器和编译器,一听就知道是很酷的事情。这套书的成功之处在于,它并非高屋建瓴,而是从零开始带着我们完成解释器和编译器的搭建,实战性很强。
——启舰 2017年度CSDN博客之星、前阿里巴巴研发工程师、“启舰杂谈”主理人
在软件设计中,开发人员经常需要开发一些高度抽象的定制模块。这些模块很可能涉及领域特定语言(DSL)的设计和解析。如果你很熟悉编译器的各个模块和运行原理,就可以很轻松地设计出适配自己项目的DSL。市面上关于编译器的书有很多,这些著作往往大而全,但是不易理解。这套书的作者对内容设计得非常精巧,通过从0到1创造一门编程语言来带领读者了解解释器和编译器的核心原理。我相信,它能给DSL设计者带来帮助。
——李正兴 腾讯高级工程师
☟☟ 一键下单
龙书虎书鲸书啃不动?试试豆瓣评分9.5的猴书相关推荐
- 豆瓣评分8.9,这本Python经典入门书重磅升级
好消息,时隔5年,这本美亚排名前三.中文版畅销超20万册,豆瓣评分8.9的入门书<Python编程快速上手--让繁琐工作自动化>第二版的中文版终于上市了.接下来的很长时间你将被这本书第2版 ...
- 编译原理三大经典:龙书 虎书 鲸书
编译原理三大经典:龙书 虎书 鲸书 https://www.cnblogs.com/Amedeo/archive/2017/11/24/7881889.html https://book.douban ...
- [转]编译原理三大经典书籍(龙书 虎书 鲸书)
1.龙书(Dragon book) 英文名:Compilers: Principles,Techniques,and Tools 作者:Alfred V.Aho,Ravi Sethi,Jeffre ...
- 编译原理 - 三大经典书籍(龙书 虎书 鲸书)
1.龙书(Dragon book) 英文名:Compilers: Principles,Techniques,and Tools 作者:Alfred V.Aho,Ravi Sethi,Jeffre ...
- 编译原理三大经典书籍(龙书 虎书 鲸书) 转
1.龙书(Dragon book) 英文名:Compilers: Principles,Techniques,and Tools 作者:Alfred V.Aho,Ravi Sethi,Jeffre ...
- 【图书资料】编译原理三大经典书籍(龙书 虎书 鲸书)
1.龙书(Dragon book) 英文名:Compilers: Principles,Techniques,and Tools 作者:Alfred V.Aho,Ravi Sethi,Jeffre ...
- 你为什么“啃不动”你手中的技术书?
图源:Pexels 很多读者都怕读TAOCP,笑称买完只能用来垫显示器,或装饰门面.但其实,可能你选读这本书的真正动机是给Bill Gates 发邮件找工作. 著名编辑人艾德勒曾说过:"任何 ...
- 疯狂python讲义豆瓣评分_书榜 | 计算机书籍(9.9-9.15)销售排行榜
原标题:书榜 | 计算机书籍(9.9-9.15)销售排行榜 或作或辍,一曝十寒,则虽读书百年,吾未见其可也. -- 吴梦祥 "书榜"栏目是脚本之家每周推出计算机书籍销量排行榜!数据 ...
- 【新书速递】评分卡建模红宝书,夯实智能风控底座
近些年来,智能风控技术在金融风险管理中的应用越来越广泛.智能风控利用金融大数据.机器学习.深度学习.强化学习.时序数据分析.异常检测.社交网络分析.图深度学习.知识图谱.自然语言处理.文本挖掘等智能分 ...
最新文章
- 如何高效读论文?剑桥CS教授亲授“三遍论”:论文最多读三遍,有的放矢,步步深入...
- Ubuntu13.10下搭建emacs+sbcl+slime的lisp开发环境
- mysql my.cnf 找不到_为什么我在mysql的my.cnf下找不到bind-address?
- android 服务器201,Android端i-jetty服务器开发(八)
- Flex学习的利器《Hello Flex4》
- Linux Socket网络通信示例
- 阶段3 2.Spring_08.面向切面编程 AOP_7 通用化切入点表达式
- 自写的简单屏蔽特定字符的TextBox和数字TextBox
- Mockito单元测试
- qt实现拓扑图_基于QT的PLC梯形图编辑系统设计与实现
- C语言程序设计选题参考
- android音视频通话解决方案,Android 音视频通话通知说明
- SHAP 可视化解释机器学习模型简介
- 车辆调度系统php,GitHub - Teamo1001/VehicleSYS: 一个基于Laravel框架的车辆调度、定位、管理系统,服务端...
- js:DOM和响应事件(一)
- 仿淘宝的详情页图片切换
- SIM7600CE模块(GSM/GPRS)调试
- 【信奥题库 NOIP 2020 在线模拟赛 T1】有趣的函数
- (2020.9.28)面试记录:软件测试实习生--面试记录
- 数字平原maya制作写实科幻场景