从 K&R 到 巫师书,以及程序员的浪漫
这篇 Blog 将会介绍一些编程书籍的有趣的别称,以及它们的来源,还会介绍一些著名的程序员,以及他们的故事。
K&R 与缩写简称
在不知道哪一篇博文中,我们介绍了 C 语言三剑客,它们分别是:
书名 | 原名 | 作者 | 插图 |
---|---|---|---|
C 和指针 | C and Pointers | Kenneth A. Reek | |
C 专家编程 | Expert C Programming | Peter van der Linden | |
C 陷阱与缺陷 | C Traps and Pitfalls | Andrew Koenig |
不过,要说起 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 |
Brian 老爷子年轻的时候真的很帅,而 Ritchie 正是 C 语言的作者
GoF
书名 | 原名 | 作者 | 插图 |
---|---|---|---|
GoF | 《设计模式:可复用面向对象软件的基础》 Design Patterns: Elements of Reusable Object-Oriented Software | Erich Gamma / Richard Helm / Ralph Johnson / John Vlissides |
《设计模式》一书的作者被称为“四人帮”(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 |
《算法导论》(Introduction to Algorithms)是基础算法方面最权威、最详细的著作之一,在很多国际著名大学被用于算法课的教材。诸多算法方面的论文将其列入参考文献当中
该书详细的介绍了诸多常见的算法及数据结构,并用严谨的证明来论证其正确性。每个章节均有例题,适合学习者深入理解。第一版刊行于1990年,2009年最新版为第三版。在许多国家常常以作者姓名首个英文字母被称为CLRS(第一版则简称为CLR)。
TAOCP
书名 | 原名 | 作者 | 插图 |
---|---|---|---|
TAOCP | 《计算机程序设计艺术》 The Art of Computer Programming | Donald Ervin Knuth |
《计算机程序设计艺术》( 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 | |
TAPL | 《类型与编程语言》 Types and Programming Languages | Benjamin C. Pierce | |
《代码大全》 (Code Complete) | Steve McConnell | ||
人月神话 (The Mythical Man-Month) | Frederick P. Brooks, Jr. | ||
《编程珠玑》 (Programming Pearls) | Jon Bentley |
从巫师书,到经典插图
巫师书 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 | |
Orange Book | 《OpenGL 着色语言》 OpenGL Shading Language | Randi J. Rost / Bill M. Licea-Kane / Dan Ginsburg / John M. Kessenich / Barthold Lichtenbelt / Hugh Malan / Mike Weiblen | |
Green Book | OpenGL Programming for the X Window System | Mark J. Kilgard | |
Blue Book | OpenGL Reference manual | Mason Woo / Jackie Neider / Tom Davis / Dave Shreiner | |
The Alpha Book (White Cover) | OpenGL Programming for Windows 95 and Windows NT. | Fosner, Ron |