这篇 Blog 将会介绍一些编程书籍的有趣的别称,以及它们的来源,还会介绍一些著名的程序员,以及他们的故事。

K&R 与缩写简称

在不知道哪一篇博文中,我们介绍了 C 语言三剑客,它们分别是:

书名 原名 作者 插图
C 和指针 C and Pointers Kenneth A. Reek C 和指针
C 专家编程 Expert C Programming Peter van der Linden C 专家编程
C 陷阱与缺陷 C Traps and Pitfalls Andrew Koenig C 陷阱与缺陷

不过,要说起 C 语言最经典的书籍,那还是是《 C 程序设计语言 》 (The C Programming Language) by Brian W. Kernighan and Dennis M. Ritchie,这本书有一些非官方的称呼,比如 C 语言的圣经什么的。

但是最为流行的称呼,还是莫过于用两位作者的姓的缩写来命名的 K&R。

书名 K&R K R
《 C 程序设计语言 》 The C Programming Language Brian W. Kernighan Dennis M. Ritchie
K&R Brian Kernighan

Brian 老爷子年轻的时候真的很帅,而 Ritchie 正是 C 语言的作者

GoF

书名 原名 作者 插图
GoF 《设计模式:可复用面向对象软件的基础》 Design Patterns: Elements of Reusable Object-Oriented Software Erich Gamma / Richard Helm / Ralph Johnson / John Vlissides GoF

《设计模式》一书的作者被称为“四人帮”(Gang of Four,GoF),他们是埃里希·伽玛(Erich Gamma)、理查德·赫尔姆(Richard Helm)、拉尔夫·约翰逊(Ralph Johnson)和约翰·威利斯迪斯(John Vlissides)。他们在1994年出版了这本书,第一次将设计模式提升到理论高度,并将之规范化。书中总结了23种设计模式,这些模式分为创建型模式、结构型模式和行为型模式三种类型。

CLRS

书名 原名 作者 插图
CLRS 《算法导论》 Introduction to Algorithms Thomas H. Cormen / Charles E. Leiserson / Ronald L. Rivest / Clifford Stein CLRS

《算法导论》(Introduction to Algorithms)是基础算法方面最权威、最详细的著作之一,在很多国际著名大学被用于算法课的教材。诸多算法方面的论文将其列入参考文献当中

该书详细的介绍了诸多常见的算法及数据结构,并用严谨的证明来论证其正确性。每个章节均有例题,适合学习者深入理解。第一版刊行于1990年,2009年最新版为第三版。在许多国家常常以作者姓名首个英文字母被称为CLRS(第一版则简称为CLR)。

TAOCP

书名 原名 作者 插图
TAOCP 《计算机程序设计艺术》 The Art of Computer Programming Donald Ervin Knuth TAOCP

《计算机程序设计艺术》( The Art of Computer Programming ),简称TAOCP,是美国计算机科学家高德纳(Donald Ervin Knuth)编著的关于计算机程序设计之七卷本著作。作者并因此获得美国计算机协会1974年图灵奖。

相比前两本书,这本书的简称要直白的多,就是单纯的书名的每个单词的首字母缩写。

wikipeida 上有一段关于这本书的介绍:

1962年,高德纳还是个研究生的时候就开始了程序设计的工作,
在攻读博士期间,艾迪生韦斯利公司(Addison-Wesley)的顾问Richard Varga找他出书,因课业繁忙,一时没时间草稿。
1963年高德纳获得加州理工学院数学博士学位,开始投入撰写工作。1968年,当时31岁的高德纳完成前六卷并首次出版,一口气写了三千多页,自此他计划写7卷。
1999年底被《美国科学家》(American Scientist)期刊列为20世纪最佳12部学术专著之一,与狄拉克的“量子力学”、爱因斯坦的“相对论”、本华·曼德博的“分形论”、鲍林的“化学键”、罗素和阿尔弗雷德·诺斯·怀海德的《数学原理》、约翰·冯·诺伊曼和摩根斯坦的“博弈论”、维纳的“控制论”、伍德沃和霍夫曼的“轨道对称性”、费曼的“量子电动力学”等科学史上的重要著作并列必读经典。至1976年,已卖出超过一百万册。

任何人发现书上的错误,都可以向他举发,并领取2.56美元,因为“256美分刚好是十六进制的一美元”(256 pennies is one hexadecimal dollar.)。比尔·盖茨在1995年说,“如果你认为你是一名真正优秀的程序员,就去读第一卷,确定可以解决其中所有的问题。”“如果你能读懂整套书的话,请给我发一份你的简历。”《计算机程序设计艺术》是高德纳一生中最重要的事业,他写这本书的目的是“组织和总结所知道的计算机方法的相关知识,并打下坚实的数学、历史基础”。

同时高德纳在进行第二卷的校样时,发觉书商把他书中的数学式子排得太难看了,因此发明数学排版软件TEX,和字形设计系统METAFONT。等到他再回来要写第四册的时候,发现他想讨论的东西,现在都写成API了。1992年高德纳自大学退休,处于隐居的生活,退休的原因是为了完成TAOCP这部巨著,他估计大约要花20年来完成。第四册预计分为A、B、C、D四个分卷出版,其中A分卷已于2005年和2011年陆续出版了平装本和精装本。

大佬,恐怖如斯。

一些其他的缩写 && 知名书籍

书名 原名 作者 插图
CSAPP 《深入理解计算机系统》 Computer Systems: A Programmer’s Perspective Randal E. Bryant / David R. O’Hallaron CSAPP
TAPL 《类型与编程语言》 Types and Programming Languages Benjamin C. Pierce TAPL
《代码大全》 (Code Complete) Steve McConnell Code Complete
人月神话 (The Mythical Man-Month) Frederick P. Brooks, Jr. The Mythical Man-Month
《编程珠玑》 (Programming Pearls) Jon Bentley Programming Pearls

从巫师书,到经典插图

巫师书 SICP

《计算机程序的构造和解释》 (Structure and Interpretation of Computer Programs) by Harold Abelson and Gerald Jay Sussman with Julie Sussman

这本书被称作巫师书,是因为封面上的插图画着巫师

实际上,在 MIT 的课程中,这本书也被称为巫师书,因为它是 MIT 的入门课程的教材。而教师正好就是本书的两位作者

SICP 课堂上,两位作者甚至还真的穿着巫师袍

编译原理界 龙书,虎书,鲸书

三大编译原理书籍,分别是龙书,虎书,鲸书

让我们,简单列一个图表吧,不然博文就太长了

书名 原名 插图
龙书 《编译原理》 Compilers: Principles, Techniques, and Tools Alfred V. Aho / Monica S. Lam / Ravi Sethi / Jeffrey D. Ullman 龙书
虎书 《现代编译原理》 Modern Compiler Implementation in C Andrew Appel 虎书
鲸书 《高级编译器设计与实现》 Advanced Compiler Design and Implementation Steven Muchnick 鲸书

顺便,知乎上的一个讨论:

编译原理领域有“龙书”“虎书”“鲸书”的说法,其他领域有吗?为什么用这三种动物来表示?

图形学 && OpenGL X宝书 series

书名 原名 作者 插图
虎书 《计算机图形学原理》 Fundamentals of Computer Graphics Steve Marschner / Peter Shirley 虎书
Red Book 《OpenGL 编程指南》 OpenGL Programming Guide Dave Shreiner / Bill The Khronos OpenGL ARB Working Group Red Book
Orange Book 《OpenGL 着色语言》 OpenGL Shading Language Randi J. Rost / Bill M. Licea-Kane / Dan Ginsburg / John M. Kessenich / Barthold Lichtenbelt / Hugh Malan / Mike Weiblen Orange Book
Green Book OpenGL Programming for the X Window System Mark J. Kilgard Green Book
Blue Book OpenGL Reference manual Mason Woo / Jackie Neider / Tom Davis / Dave Shreiner Blue Book
The Alpha Book (White Cover) OpenGL Programming for Windows 95 and Windows NT. Fosner, Ron The Alpha Book ( White Cover )