K&R 这本The C Programming Language相信大家再也熟悉不过了。英文书常用
C Bible 作者的姓氏加以称呼,由C语言的设计者Brian W Kernighan 和 Dennis M
Ritchie写的这本书通常被称作 K&R。这本书被视为 C 语言的圣经,所以
大家也喊它″C Bible″。 这本书不但是教 C 语言的课本,也是 C 语
言的定义,但也因此这本书并不好读。当作课本很好,对於其他书籍语焉
不详的部份可以在这里找到明确的定义;对於要自修的读者而言,读这本
书就比较辛苦了。
顺便一提这本书的序言:「C 是个小语言,但是在许多场合下,他可以表
现得和一些大语言一样的好」。
龙书 Dragon book 有两本,第一本由 Alfred V. Aho 和 Jeffrey D. Ullman
所著。这本 Principles of Compiler Design, 封面上画著一只红色的,
西洋式的龙,上面写著「Compiler设计的复杂性」,另外有一个铁甲武士
正和它交战,身上写著「理论和发展工具」, 因而这本书被称为 dragon
book。 推出後反应良好。
数年後, 为了跟上 compiler 领域在这几年间的进步, 他们两人再加上
Ravi Sethi 又为 dragon book 出了续集 Compiler Design : Prin-
ciples, Techniques, and Tools。 不仅 compiler 领域内这本书被奉为
经典,几乎只要在和 compiler 相关的许许多多主题扯上一点关连的文件
中,包括系统程式,资料结构,正规语言等等,谈到深处後可能就会要你
去参考这本 dragon book。
打棒球的人 同样是 Ullman 的书,Principles of Database and Knowledge-Base
Systems。
OS动物园 Abraham Silberschatz 和 Peter Galvin 的Operating System Con-
cepts, 在封面上用不同的动物表示不同的 OS. OS/MVS 是一只大雷
龙,VMS 是一只三角龙,MULTICS 则是暴龙。在这些远古 OS 之後的
有用犀牛代表的 UNIX, 用一只直立奔跑的蜥蜴代表的 Mach, 和画成
老虎的 OS/2。至於 MS-DOS.... 是一只不知道是狗还是狼的动物...
圆柱 稍稍翻阅 Computer Architecture: a Quantitative Approach, 很快就
会感觉到这本 John L.Hennessy & David A.Patterson 所著, 封面画著
圆柱的书无疑的是计算机结构的钜作。如同它的标题所示,这本书强调的
是硬体设计需要有数字的分析,而不是凭直觉。这本书指出了许多设计上
常见的的陷阱和谬误,对计算机结构设计界震撼不小。同样的作者後来出
了一本架构类似, 较简单的入门书, 就是现在系上计算机组织课所用的
Computer Organization & Design.
小熊书 Ravi Sethi的这本Programming Languages, Concepts and Constructs是
programming language 领域的有名著作, 封面画著一只小熊站在床边玩
电脑。
Foundations of Computer Science
很难得能有像 Ullman 和 Aho 等人这样的大师合作, 来写电脑科学概论
的书。这本书的读者设定在初学电脑科学的学生,内容就是几个重要的基
础电脑科学领域,有基本的演算法,资料结构,离散数学,甚至数位系统,
很适合在计概课当课本用。
猜猜这本书的封面是什麽样子?中间是一只大乌龟,四只脚踩在四只大象
背上以前的神话相信世界是由这样的大乌龟和四只大象支撑起来的。
乌龟背上撑的是什麽呢?是一头龙,一只小熊,一只三角龙,一根圆柱,
和一个打棒球的人。:)
紫皮书 在Scheme语言(一种类似LISP的语言)的领域内, 这本 Harold Abelson,
Gerald J. Sussman 和 Julie Sussman 的 Structure and Interpre-
tation of Computer Programs 是另一本圣经,有著好多个□称。按照书
名字首简称为″SICP″; 由於书皮是紫色的, 所以被简称为″Purple
Book″; 由於这本书重要, 乾脆有人叫他「 The Book」! 够狂吧。在
news groups 的 comp.lang.scheme中,你说「我在 The Book(大写)中
读到了....」,大家就知道是这本书了。
SICP以Scheme语言为工具,目的却是教程式设计的观念和原则。读者可以
完全不懂电脑。这本书被入门者推崇著的同时,也被选作麻省理工学院的
电脑概论课教材,给许多完全不懂电脑的学生读,可说是很难得的。内容
包括了程序抽象,资料抽象,物件导向,资料流向程式设计等等。如果嫌
课堂上的程式设计教得太死板,非常建议你一读。
蓝皮书 记得 Smalltalk 这个语言吗? Smalltalk 原本想设计成一个简单得可以
用来教小孩子写程式的语言。 在八年的发展後,Xerox终於决定正式把这
个语言公开,因而造成了这一系列书籍的诞生。这本 ″Smalltalk-80 --
The Language and Its Implementation″ 由 Adele Goldberg 和 David
Robson 所著,被称为 Blue Book。和 K&R 一样,这本书不但是课本,也
是 Smalltalk 语言的定义。 可以想见,这本书一定同样的重要,但也同
样的不容易读,在读这本书之前最好找一些介绍性的书籍当先修。
橘皮书 Smalltalk-80 -- The Interactive Programming Environment, Small-
talk系列的第二本,Goldberg著。 介绍如何使用Smalltalk的程式设计环
境。
绿皮书 Glenn Krasner 所著,Smalltalk 系列的第四本,给要实作 Smalltalk的
发展者看的。
Smalltalk系列计划中的第三本本原应该描述Smalltalk应用程式的图形界
面和互动环境,然而并没有成书,使得这方面缺乏正式的文件,十分可惜。
这是我目前所收集到的资料了。听说 UNIX 界还有一本重要的「黄皮书」。有没有
同学愿意补充的呢?:)
References
----------
[Abelson & Sussman 1985] Abelson, Harold & Sussman, Gerald Jay &
Sussman, Julie,1985, "Structure and interpretation of computer
programs", Cambridge: MIT
[Aho & Sethi & Ullman 1985] Aho, Alfred V. & Sethi, Ravi & Ullman,
Jeffrey D., 1985, "Compilers : principles, techniques, and tools",
S.l. Addison-Wesley
[Aho & Ullman 1992] Aho, Alfred V. & Ullman, Jeffrey D., 1992,
"Foundations of computer science", New York: Computer Science Press
[Goldberg & Robson 1983] Goldberg, Adele & Robson, David, 1983,
"Smalltalk-80 : the language and its implementation", Reading, Mass.
Addison-Wesley
[Goldberg 1984] Goldberg, Adele, 1984, "Smalltalk-80 : The interactive
programming environment", London Addison-Wesley Publishing Center
[Kernighan & Ritchie 1988] Kernighan, Brian W. & Ritchie, Dennis M.,
1988, "The C programming language", 2nd edition, Englewood Cliffs,
N.J., Prentice Hall
[Krasner 1983] Krasner, Glenn, 1983, "Smalltalk-80 : bits of history,
words of advice", Reading, Mass., Addison-Wesley
[Patternson & Hennessy 1990] Patternson, David A. & Hennessy, John L,
1990, "Computer architecture : a quantitative approach", San Mateo,
CA, Morgan Kaufmann Publishers, Inc.
[Sethi 1989] Sethi, Ravi, 1989, "Programming languages : concepts and
constructs", Reading, Mass., Addison-Wesley
[Silberschatz & Galvin 1994] Silberschatz, Abraham & Galvin, Peter B.,
1994, "Operating system concepts", 4th edition, Reading, Mass.,
Addison-Wesley
[Ullman 1988] Ullman Jerrrey D., 1988, "Principles of database and
knowledge - base systems", Rockville, Computer Science Press
阅读(1163) | 评论(0) | 转发(0) |