相传,编译原理界有三大圣书:

龙书是为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的猴书相关推荐

  1. 豆瓣评分8.9,这本Python经典入门书重磅升级

    好消息,时隔5年,这本美亚排名前三.中文版畅销超20万册,豆瓣评分8.9的入门书<Python编程快速上手--让繁琐工作自动化>第二版的中文版终于上市了.接下来的很长时间你将被这本书第2版 ...

  2. 编译原理三大经典:龙书 虎书 鲸书

    编译原理三大经典:龙书 虎书 鲸书 https://www.cnblogs.com/Amedeo/archive/2017/11/24/7881889.html https://book.douban ...

  3. [转]编译原理三大经典书籍(龙书 虎书 鲸书)

    1.龙书(Dragon book)  英文名:Compilers: Principles,Techniques,and Tools  作者:Alfred V.Aho,Ravi Sethi,Jeffre ...

  4. 编译原理 - 三大经典书籍(龙书 虎书 鲸书)

    1.龙书(Dragon book)  英文名:Compilers: Principles,Techniques,and Tools  作者:Alfred V.Aho,Ravi Sethi,Jeffre ...

  5. 编译原理三大经典书籍(龙书 虎书 鲸书) 转

    1.龙书(Dragon book)  英文名:Compilers: Principles,Techniques,and Tools  作者:Alfred V.Aho,Ravi Sethi,Jeffre ...

  6. 【图书资料】编译原理三大经典书籍(龙书 虎书 鲸书)

    1.龙书(Dragon book)  英文名:Compilers: Principles,Techniques,and Tools  作者:Alfred V.Aho,Ravi Sethi,Jeffre ...

  7. 你为什么“啃不动”你手中的技术书?

    图源:Pexels 很多读者都怕读TAOCP,笑称买完只能用来垫显示器,或装饰门面.但其实,可能你选读这本书的真正动机是给Bill Gates 发邮件找工作. 著名编辑人艾德勒曾说过:"任何 ...

  8. 疯狂python讲义豆瓣评分_书榜 | 计算机书籍(9.9-9.15)销售排行榜

    原标题:书榜 | 计算机书籍(9.9-9.15)销售排行榜 或作或辍,一曝十寒,则虽读书百年,吾未见其可也. -- 吴梦祥 "书榜"栏目是脚本之家每周推出计算机书籍销量排行榜!数据 ...

  9. 【新书速递】评分卡建模红宝书,夯实智能风控底座

    近些年来,智能风控技术在金融风险管理中的应用越来越广泛.智能风控利用金融大数据.机器学习.深度学习.强化学习.时序数据分析.异常检测.社交网络分析.图深度学习.知识图谱.自然语言处理.文本挖掘等智能分 ...

最新文章

  1. 如何高效读论文?剑桥CS教授亲授“三遍论”:论文最多读三遍,有的放矢,步步深入...
  2. Ubuntu13.10下搭建emacs+sbcl+slime的lisp开发环境
  3. mysql my.cnf 找不到_为什么我在mysql的my.cnf下找不到bind-address?
  4. android 服务器201,Android端i-jetty服务器开发(八)
  5. Flex学习的利器《Hello Flex4》
  6. Linux Socket网络通信示例
  7. 阶段3 2.Spring_08.面向切面编程 AOP_7 通用化切入点表达式
  8. 自写的简单屏蔽特定字符的TextBox和数字TextBox
  9. Mockito单元测试
  10. qt实现拓扑图_基于QT的PLC梯形图编辑系统设计与实现
  11. C语言程序设计选题参考
  12. android音视频通话解决方案,Android 音视频通话通知说明
  13. SHAP 可视化解释机器学习模型简介
  14. 车辆调度系统php,GitHub - Teamo1001/VehicleSYS: 一个基于Laravel框架的车辆调度、定位、管理系统,服务端...
  15. js:DOM和响应事件(一)
  16. 仿淘宝的详情页图片切换
  17. SIM7600CE模块(GSM/GPRS)调试
  18. 【信奥题库 NOIP 2020 在线模拟赛 T1】有趣的函数
  19. (2020.9.28)面试记录:软件测试实习生--面试记录
  20. 数字平原maya制作写实科幻场景

热门文章

  1. spring学习笔记(1)——B站动力节点
  2. 易语言 用精易的网页_访问 请求https的时候返回不了数据
  3. 图书简介:Greenplum从大数据战略到实现
  4. 安装visio2016及激活
  5. etax导入账户不让勾选_电子税务局客户端常见问题汇总
  6. cad相对坐标快捷键_CAD使用技巧,15个命令走天下!
  7. iOS、Android连接Charles代理(Mac版)
  8. TCP协议:SYN、ACK、ISN、SeqNumber
  9. 最新hp笔记本驱动大全
  10. autocad2010 32位/64位免费中文版