一本制作程序设计语言的行路指南。

本书囊括了实现一门功能齐全、稳定高效的脚本程序设计语言你所需要知晓的一切。你既可以学习到围绕程序设计语言的核心概念(如:词法分析、语法解析),还能深入理解语言实现的具体细节(如:字节码表示,垃圾收集等)。你的大脑将因新知变得熠熠生辉,你的双手将因实操变得伤痕累累,相信这一定会是段很有意义的经历。

从主函数 main() 开始,你将逐步构建起一门羽翼丰满的程序设计语言, 逐步为其添加语法实现、动态类型、垃圾收集、词法作用域、一等公民函数、闭包、类与继承等功能。 所有功能都会在仅数千行简洁、高效的代码中被实现,你对这些代码了然于胸,因为这些代码将由你亲手写下。

你可以完全免费地在线阅读此书:

开始阅读!

我想要手握一本实体书

或许,我有点老土赶不上时代了,但对我而言,“书本”一词仍意味着印刷油墨和原木纸浆。 只可惜,这本书还没有被印刷成册。章节内容都已经写好,但我仍然在设计最终印刷的版式。 如果你也想知道此书何时能印刷出版,可以在下方留下你的邮箱地址,我会把你加入到邮件列表中, 及时通知你:

你是谁?

我的名字叫 Bob Nystrom。大约 10 年前,我被自己拼拼凑凑做出来的程序语言 bug 困扰得头疼不已, 那时候我正在休陪产假,晚上有很多空闲时间可以捣鼓。从那时我才发现,原来我真的很喜欢程序设计语言开发啊, 于是,我便遵从本心,投身于全职程序设计语言开发相关工作。现在,我在谷歌公司(Google)开发 Dart 语言

在爱上程序设计语言之前,我在美国艺电公司(Electronic Arts)做了 8 年的游戏开发工作。 基于在艺电学到的游戏开发知识,我当时写了本书,卖得还不错呢 《Game Programming Patterns》。现在,你同样可以免费阅读到它。至于你问我为什么要免费?因为我爱你们呀。 w(゚Д゚)w

如果你想联系我,可以给我发邮件(bob@craftinginterpreters.com), 或是在 Twitter 上找到我(@munificentbob)。 如果你觉得我的书写得不错,我还有个个人博客, 也许你也会喜欢。