中文名称:计算机科学经典著作
英文名称:Computer Science
版本:
简介:
1.The Art of Computer Programmin
Author: Donald.E.Knuth
Book Info: 这部书被誉为20世纪最重要的20部著作之一,与Einstein的"相对论"并
列,是计算机科学领域的权威著作.全书共分7卷,目前已经出版了3卷,被誉为"计算机程序设
计理论的荷马史诗","可与牛顿的<<自然科学的数学原理>>媲美的巨著".作者数学方面的功
底造就了本书严谨的风格,虽然本书不是用当今流行的程序设计语言描述的,但这丝毫不损
伤它"程序设计史诗"的地位.道理很简单,它内涵的设计思想是永远不会过时的.The Art of
Computer Programming 原计划要出七册,但目前只完成了三册.该书有日文,俄文,西班牙
文等许多国的版本.其中,中文版由国防大学出版社发行.无数的读者都在谈论Knuth的书所
带来的深远影响.科学家惊叹于分析逻辑之透彻严谨,而普通的编程人员也已成功地将书中
所列方案运用到他们的日常问题中.所有的人都非常赞赏Knuth在这套书中所表现的精确与
风趣,并为其明确性与涉及面之广而感到欣喜.
我无法向你表达这套书在学习和创造性方面所带给我的兴奋与激动,我已经将它们带
入了我的生活,就像我的汽车,饭馆,工作,家庭……无所不在
----Charles Long
无论你的背景怎样,如果你正在进行复杂的计算机编程,你就应该阅读本套书中的每本
书,来补充你的专业知识.当一个问题难以解决,而必须使用Knuth的这套书来解决时,总是
一件令人愉快的事情.我发现在计算机方面使用它们会有惊人的效果.
----Jonathan Laventhol
如果你认为你是一名真正优秀的程序员……读Knuth的<<计算机程序设计艺术>>,如果
你能读懂整套书的话,请给我发一份你的简历.
----Bill Gates
The Art of Computer Programming, Volume 1: Fundamental Algorithms (3rd Edition)
Book Info: 卷1为基础运算法则,该书以基本的编程概念和技术为开始,然后讲述信息结构
--计算机内信息的表示法,数据元素间的结构关系以及处理它们的有效方法.主要应用于模
拟,数字方法,符号计算,软件和系统设计.许多简单和重要的运算法则和技术已添加到前一
版本中,精确的初步计算部分已经修改,以适应当前趋势.
The Art of Computer Programming, Volume 2: Seminumerical Algorithms(3rd Edition)
Book Info: 第2卷对半数值算法领域做了全面介绍,分"随机数"和"算术"两章.本卷总结了
主要算法范例及这些算法的基本理论,广泛剖析了计算机程序设计与数值分析间的相互联系
.第3版中特别值得注意的是Knuth对随机数生成程序的重新处理和对形式幂级数计算的讨论
.
The Art of Computer Programming, Volume 3: Sorting and Searching (2nd Edition)
Book Info: 卷3为分拣和搜索,这是本书的第1个修订版,它是对计算机分拣和搜索的一流
技术的最全面的研究,它扩展了卷1中数据结构的处理方法,将大小数据库以及内存和外部
存储都包含在内.本书包括对计算机方法仔细检查的选择方案,和其效率的大量分析.本书
该版的独特之处在于优化了的分拣,以及对通用散列法和排列法的新的理论论述.
作者简介: Donald.E.Knuth(唐纳德.E.克努特,中文名高德纳)是算法和程序设计技术的先
驱者,是计算机排版系统TeX和METAFONT的发明者,他因这些成就和大量创造性的影响深远的
著作(19部书和160篇论文)而誉满全球,在计算机科学领域享有崇高的威望,是计算机科学界
公认的大宗师.作为斯坦福大学计算机程序设计艺术的荣誉退休教授,他当前正全神贯注于
完成其关于计算机科学的史诗性的七卷集.这一伟大工程在1962年他还是加利福尼亚理工学
院的研究生时就开始了.Knuth教授获得了许多奖项和荣誉,包括美国计算机协会图灵奖(AC
M Turing Award),美国前总统卡特授予的科学金奖(Medal of Science),美国数学学会斯蒂
尔奖(AMS Steele Prize),以及1996年11月由于发明先进技术荣获的极受尊重的京都奖(Ky
otoPrize).现与其妻Jill生活于斯坦福校园内.Donald.E.Knuth人生最辉煌的时刻在斯坦福
大学计算机系渡过,获得了美国计算机协会图灵奖,成为本领域内当之无愧的泰斗。
2.Introduction to Algorithms
Author:Thomas H.Cormen ,Charles E.Leiserson ,Ronald L.Rivest ,Clifford Stein
Book Info: 简称为CLRS的"算法导论",被称作"计算机算法的圣经".
本书的主要作者来自麻省理工大学计算机,作者之一Ronald L.Rivest 由于其在公开秘钥密
码算法RSA上的贡献获得了图灵奖,目前是算法的标准教材,美国许多名校的计算机系都使用
它,国内有些院校也将本书作为算法课程的教材.另外许多专业人员也经常引用它.由于TAO
CP只出版了3卷,CLRS比较起前者来则显得内容更为全面,基本包含了所有的经典算法.本书
程序全部由伪代码实现,这更增添了本书的通用性,使得利用各种程序设计语言的程序员都
可以作为参考.语言方面通俗,很适合作为算法教材和自学算法之用.国内的很多作品名为数
据结构,从本书中断章取义,把数据结构与算法混为一谈,搞得作者自己都迷迷糊糊.这也是
我不十分愿意向大家推荐国内作品的原因.你会发现现在基本上所有的数据结构与算法书籍
都会将本书作为参考文献之一,更可以说明一个问题,本书是作为读者进行算法学习的最佳
选择.作为本书的补充内容,我愿意向大家推荐下面的学习资料:你可以通过这个地址找到本
书的所有练习答案:http://www.itu.dk/people/beetle/
为了更好的学习本书中的内容,最好的指导当然是来自作者本身讲述本书的课程,读者们可
以通过http://18.89.1.101/sma/5503fall2001/index5503fall2001.html获得课程的录像
3.Data Structure & Algorithm Analysis in C (Second Edition)
Author:Mark Allen Weiss
Book Info: 本书曾被评为20世纪顶尖的30部计算机著作之一,作者Mark Allen Weiss在数
据结构和算法分析方面卓有建树已被世界500余所大学用作教材.
4.Concrete Mathematics A Foundation for Computer Science (Second Edition)
Author:Donald.E.Knuth&Ronald L.Graham
Book Info: 很令人兴奋的就是这本书的主要作者正是泰斗Donald.E.Knuth以及他的同事R
onald L.Graham.书稿是他们在1970年的时候在计算机系教授研究生本门课程的基础上整理
出来的教材.内容上是Knuth的巨著TAOCP第一部的扩展,有些比TAOCP中谈及地又深入了许多
.重点放在高级计算机程序设计话题以及算法分析上,涉及了计算机科学领域内几乎所有可
能遇到的数学知识.具体数学是离散数学连续数学的综合,书中这点做得极为出色,介绍的内
容涉及到书中许多经典问题的解答比目前广泛流传的解法更易懂.对于提高大家的计算数学
修养有很大帮助.之所以TAOCP有的时候读者们读不懂就是因为计算数学基础不是十分扎实
,但以我个人经验,若能对本书中内容有一个比较好的理解,会给你阅读如TAOCP这样的旷世
巨著带来很大的方便.
5.Discrete Mathematics and Its Applications,Fourth Edition
Author:Kenneth H.Rosen
Book Info: 本书的价值已经被全世界几百所大学所证实,作为离散数学领域的经典教材,全
世界几乎所有知名的院校都曾经使用本书作为教材.以我个人观点看来,这本书可以称之为
离散数学百科.书中不但介绍了离散数学的理论和方法,还有丰富的历史资料和相关学习网
站资源.更为令人激动的便是这本书少有的将离散数学理论与应用结合得如此的好.你可以
看到离散数学理论在逻辑电路,程序设计,商业和互联网等诸多领域的应用实例.本书的英文
版(第五版)当中更增添了相当多的数学和计算机科学家的传记,是计算机科学历史不可多得
的参考资料.作为教材这本书配有相当数量的练习.每一章后面还有一组课题,把学生已经学
到的计算和离散数学的内容结合在一起进行训练.这本书也是我个人在学习离散数学时读的
唯一的英文教材,实为一本值得推荐的好书.
6.The C Programming Language 2nd Edition
Author:Brian W.Kernighan and Dennis M.Ritchie
Book Info: Brian W.Kernighan和Dennis M.Ritchie的传世之作.千千万万程序员和编程爱
好者的圣经,每一页都是价值连城的秘诀.不管你从哪一页信手翻起,最终你都会发现自己已
经深陷其中而不能自拔.
7.The C++ Programming Language
Author:Bjarne Stroustrap
Book Info: 由C++之父亲手执笔的“The C++ Programming Language”是每个程序员心
目中不可动摇的指南-----尽管官方标准还是ISO颁布的另一份文档,由ISO/IEC JTC1/SC
22/WG21出版.TCPL是除了C++标准文献之外最权威的C++参考手册.?痛蠖嗍�人的看�ú淮笠
谎?,我认为Bjarne的文字语言并不逊色于他所创建的程序语言,至少我喜欢这种学院气息
浓厚的作品.本书对C++语言的描述轮廓鲜明,直截了当.它从C++语言创建者的角度来观察
C++,这是任何别的作者和书籍做不到的----没有任何人比Bjarne自己更清楚该怎么来使
用C++.<br /> 这是一本严肃的著作,以中,高级C++开发人员为目标读者.如果你是一
名有经验的C++程序员,需要了解更加本质的C++知识,本书正是为你而写.它不是那种让你
看了会不断窃喜的小书,需要用心体会,反复咀嚼.在阅读过程中,请特别留心Bjarne先生
强调了什么,又对什么一语带过.我个人比较喜欢这本书的第四部分"使用C++做设计",这
样的内容在类似的程序设计语言书籍中很难看到----我甚至认为Bjarne应该将这部分独
立出来单独写一本书.
8.The Design and Evolution of C++
Author: Bjarne Stroustrup
Bookk Info: D&E是一本关于C++语言设计原理,设
计决策和设计哲学的专著.它清晰地回答了C++为什么会成为今天这个样子而没有变成另外
一种语言.作为C++语言的创建者,Bjarne淋漓尽致地展示了他独到而深刻的见解.除了广受
赞誉的语言特性外,Bjarne没有回避那些引起争议的甚至被拒绝的C++特性,他一一给出了逻
辑严密,令人信服的解释.内容涵盖C++的史前时代,带类的C,C++的设计规则,标准化,库,内
存管理,多重继承,模板等,对包括异常机制,运行时类型信息和名字空间在内的重要的新特
性都分别进行了深入探讨.每一名C++程序员都应该可以从Bjarne的阐释中加深对手中这门
语言的认识.这本书知识浓缩,信息量极大,请不要错过Bjarne每一句看似漫不经意的话.
9.Accelerated C++: Practical Programming by Example
Author: Andrew Koenig, Barbara E.Moo
Book Info: 和市面上大多数C++教程不同,本书不是从"C++中的C"开始讲解,而是始于地道
的C++特性.从一开始就使用标准库来写程序,随着讲述的逐渐深入,又一一解释这些标准库
组件所依赖的基础概念.另外,和其他C++教材不同的是,这本书以实例拉动语言和标准库的
讲解,对后两者的讲解是为了给实例程序提供支持,而不是像绝大多数C++教材那样,例子只
是用作演示语言特性和标准库用法的辅助工具.
作者在C++领域的编程实践,教育培训以及技术写作方面都是世界一流水准.我喜欢这种大量
使用标准库和C++语言原生特性的清新的写作风格.在这本教材面前,几乎迄今为止的所有C
++教材都黯然失色或显得过时.尽管这本教材也许对于国内的高校教育来说有些前卫,不过
我仍然极力向我的同行们推荐.顺带一提,在Bjarne和我最近的一封通信里,他这样评价本书
:对于有经验的程序员学习C++而言,这本书可能是世界上最好的一本.
10.C++ Gotchas: Avoiding Common Problems in Coding and Design
Author: Stephen C.Dewhurst
Book Info: Stephen的理论素养和实践经验注定这是一本值得一读的好书.Stephen曾经是
贝尔实验室中第一批C++使用者.他已经使用C++成功解决了包括编译器,证券交易,电子商务
以及嵌入式系统等领域中的问题.本书汇集了作者来自开发一线的99条编程真知灼见,洞悉
它们,你可以避免几乎所有常见的C++设计和编程问题.我甚至认为,对于C++编程菜鸟而言,
阅读这本书会比阅读Scott和Herb的书更能轻松而立竿见影地获得更大的提高.我个人很喜
欢这本书的写作风格----Stephen的许多观点看似极端却无可辩驳.当然了,这种自信(以及
冷幽默)来自于作者深厚的技术素养,而非自大的偏执.
11.C++ Primer 3rd
Author: Stanley B.Lippman
Book Info: 这本书的名字多少有点让人误解.
尽管作者声称这本书是为C++新手而写,但无论是它的厚度还是讲解的深度都暴露
了似乎并非如此.也许说它是一本"从入门到精通"的C++教程会更合适一些.我个人认为它并
不适合完全不懂C++的初学者----在阅读这本书之前,你至少应该先有那么一点C或C++的背
景知识,或者至少要具有一些其他语言的编程经验.
尽管这本书省略了一些高级C++特性的讨论,但仍然可以称得上是迄今为止最全面的C++学习
教程.事实上,如果一名C++初学者能够扎扎实实地读完本书并对照"C++ Primer Answer Bo
ok"完成全部习题的话,他的水平肯定可以进入职业C++程序员的行列.我个人认为,即使你已
经拥有了TCPL,这本书依然有拥有的价值,因为在许多方面它比TCPL来得更详细,更易懂.
12.Essential C++
Author: Stanley B.Lippman
Book Info: 可以不太严格地认为这本书是"C++ Primer"的精简版.
本书一一讲述了C++中最具代表性的主题,包括过程式编程,泛型编程,基于
对象编程,面向对象编程,模板编程以及异常处理等.Stanley将门槛调低到"具有其他语言程
序设计经验"的C++新手所能接受的最基本的层次,使他们能够迅速开始使用C++编程而又免
于阅读"C++ Primer"那样的大部头.它以实例引导学习,力图使读者在最短的时间内把握C+
+的精粹.也许换一个人来概述C++编程范型(paradigm)的方方面面需要好几百页才能说清楚
,但这本小书不可思议地做到了这一点.我个人非常喜欢这种满是技术,简明扼要并且"有话
好好说"的书.这本书同样具有一个明显的风格:所有程序例子全部采用标准库组件,让人耳
目一新.
13.Effective C++: 50 Specific Ways to Improve Your Programs and Design (2nd Edition)
More Effective C++: 35 New Ways to Improve Your Programs and Designs
Author: Scott Meyers
Nook Info: 先养成良好的C++设计习惯,这是Scott Meyers的"Effective C++"和"More Eff
ective C++"带给我们的无穷好处,这两本书是真正的经典,作者对C++的纯熟,使得语言的风
格读起来简直是如饴甘甜,就像他站在你对面讲课.如果你已经深刻地理解了"Effective C
++"和"More Effective C++";,那你可以发现,你在众人中已经是鸡群之鹤.如果说"Effect
ive C++"主要讨论C++中一些相对基础的概念和技巧的话,那么"More Effective C++"则着
重探讨了包括异常处理在内的一系列高级技术.与前者相比,后者具有两大主要区别:其一,
它包含很多时新的标准C++的内容;第二,它讨论的主题倾向于"战略化"而非"战术化",并且
讨论得更深入,更彻底.尤其是对虚析构函数,智能指针,引用计数以及代理类(proxy class
e)等技术和模式论述的深入程度,让人很难想象是出现于这样的一本小书之中.
14.Exceptional C++: 47 Engineering Puzzles, Programming Problems, and Solutions< More Exceptional C++: 40 New Engineering Puzzles, Programming Problems, and Solutions>
Author: Herb Sutter
Book Info: 你自认为是一名C++语言专家吗?读一读ISO C++标准委员会秘书长的这两本书
再回答.在这两本书中,Herb采用了"问答"的方式指导你学习C++语言特性.对于每一个专题
,Herb首先合理地设想出你的疑问和困惑,接着又猜测出你十有八九是错误的解答,然后给你
以指点并提出最佳解决方案,最后还归纳出解决类似问题的普适性原则.<br /> 这两本
书是典型的深究C++语言细节的著作,很薄,但内容密集,远远超过Scott的那两本书,读起来
很费脑筋----我个人认为它们要比Scott的书难懂得多.若要研习这薄薄的两本书所包含的
知识,至少需要花费数月的时间!(在Scott的荐序中,他坦陈不止一次陷入GotW问题的陷阱,
你应该知道这意味着什么)对于语言细节的深究有什么好处呢?尽管在大多数情况下,我们不
必关心C++代码幕后的动作,然而当我们不得不关心时,这两本书可以为我们提供很好的线索
,因为它们揭示了C++语言中微妙而又至关重要的东西.
15.Modern C++ Design: Generic Programming and Design Patterns Applied
Author: Andrei Alexandrescu
Book Info: 你自认为是C++模板编程高手吗?请看过这本书再回答.
这是一本出自天才之手令人敬畏的杰作.泛型模式,无限延
伸你的视野,足以挑战任何一名C++程序员的思维极限.<br /> 这本书共分为两大部分,
第一部分讨论了Loki程序库采用的基础技术以及一些高级语言特性,包括基于策略的类设计
,模板局部特化,编译期断言,Typelist以及小型对象分配技术等.第二部分则着重介绍了Lo
ki中的重要组件和泛型模式技术,包括泛化仿函数(Generalization Functor),单件(Singl
eton),智能指针,对象工厂(Object Factory),抽象工厂(Abstract Factory),访问者(Visi
tor)以及多方法(Multimethods)等.每一种技术都让人大开眼界,叹为观止.
16.C++ Templates: The Complete Guide
Author: David Vandevoorde, Nicolai M.Josuttis
Book Info: 有一种老套的赞美一本书的手法,
大致是"没有看过这本书,你就怎么怎么地",这里面往往夸张的成分居多.不过,倘
若说"没有看过"C++ Templates: The Complete Guide",你就不可能精通C++模板编程",那
么这个论断对于世界上绝大多数C++程序员来说是成立的.这本书填补了C++模板书籍领域由
来已久的空白.此前,上有"Modern C++ Design"这样的专注于模板高级编程技术和泛型模式
的著作,下有"The C++ Standard Library"这样的针对特定模板框架和组件的使用指南.然
而,假如对模板机制缺乏深入的理解,你就很难"上下"自如.鉴于此,我向每一位渴望透彻理
解C++模板技术的朋友推荐这本书.
17.The C++ Standard Library: A Tutorial and Reference
Author: Nicolai M. Josuttis
Book Info: 这是一本百科全书式的C++标准库著作,是一本需要一再查阅的参考大全.它在
完备性,细致性以及精确性方面都是无与伦比的.本书详细介绍了每一标准库组件的规格和
用法,内容涵盖包括流和本地化在内的整个标准库而不仅仅是STL.正如本书副标题所示,它
首先适合作为教程阅读,尔后又可用作参考手册.浅显易懂的写作风格使得这本书非常易读
.如果你希望学习标准库的用法并尽可能地发挥其潜能,那你必须拥有这本书.正如网络上所
言,这本书不仅仅应该摆在你的书橱中,更应该放到你的电脑桌上.我向每一位职业C++程序
员强烈推荐.
18.Effective C++: 50 Specific Ways to Improve Your Programs and Design (2nd Edition)
Author: Scott Meyers
Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template L
ibrary
Author: Scott Meyers
Book Info: 读完Scott 的"Effective C++"和"More Effective C++"的中译本之后,我一直
期待这本书的中文版.我从潘爱民先生的个人主页上了解到,他和他的合作伙伴似乎早已完
成了这本书的翻译工作,可惜至今市面上仍不得见.幸运的是,我们可以看到它的原版.臼槭
鞘褂�STL的程序员必读之作.在这本书中,Scott向我们讲述STL容器和算法的工作机制以及
如何以最佳方式使用它们.和Scott的其他作品一样,这本书的写作风格清晰,精确,具有极佳
的可读性.看过这本书以后,我想你也许会和我以及其他C++程序员一样产生这样的想法:co
tt什么时候会写出一本"More Effective STL"?
19.Thinking in C++, Volume 1: Introduction to Standard C++ (2nd Edition)
Author: Bruce Eckel
Book Info: "Thinking in C++"的第1版于1996年荣获"软件研发"杂志评选的图书震撼大奖
.最新推出的第2版对内容进行了大幅改写和调整,以反映C++标准化带来的影响以及近几年
面向对象领域最新研究和实践成果."输入输入流","多重继承","异常处理"和"运行时类型
识别"等高级主题连同C++标准化以后增加的一些内容则被放入第二卷中.Bruce是一名经验
丰富的C++讲师和顾问,其培训和写作经验都是世界一流水准,他的作品比那些"玩票"的技术
人员写的东西更能吸引读者.事实上,在同类图书中,对于大多数读者而言,这本书的可读性
要超过TCPL和"C++ Primer"
Thinking in C++, Volume 2: Practical Programming (Second Edition)
Author: Bruce Eckel
20.Ruminations on C++: A Decade of Programming Insight and Experience
Author: Andrew Koenig, Barbara E. Moo, Barbara E. (Editor) Moo
Book Info: Andrew是世界上屈指可数的C++专家.这是一本关于C++编程思想和程
序设计技术而非语言细节的著作.如果你已经具有一定的基础,这本书将教你在进行C++编程
时应该怎样思考,应该如何表达解决方案.整本书技术表达透彻,文字通俗易懂.Bjarne这样
评价这本书:本书遍布"C++是什么,C++能够做什么"的真知灼见.
21.Design Patterns: Elements of Reusable Object-Oriented software
Author: Erich Gamma
Book Info: 设计可复用的面向对象的软件,你需要掌握设计模式.本书并非专为C++程序员
而写,但它采用了C++(以及Smalltalk)作为主要示例语言,C++程序员尤其易于从中受益.四
位作者都是国际公认的面向对象软件领域专家,他们将面向对象软件的设计经验作为设计模
式详细记录下来.这本书影响是如此深远,以至于四位作者以及本书都被昵称为GoF(Gang o
f Four).本书学院气息浓厚,行文风格严谨简洁,虽然它不如某些讲解模式的书籍易读,但真
正要精准地理解设计模式,本书是终极权威.学习设计模式,这本书需要一而再,再而三的咀
嚼.顺带一句:请将设计模式化作开拓思维的钥匙,切莫成为封闭思维的枷锁.
22.Efficient C++: Performance Programming Techniques
Author: Dov Bulka, David Mayhew
Book Info: 这本超薄小书聚焦于高性能C++应用程序开发.
两位作者都是IBM软件专家,都工作于对性能要求极高的系统构建领
域,本书是他们的经验之谈.也有人不喜欢这本书,因为它花了不少的篇幅讲述和C++无关的
东西,我却恰恰因为这一点而对这本书产生好感,正是这些东西让我开阔了眼界.
23.Inside the C++ Object Model
Author: Stanley B.Lippman
Book Info: 从编译器的角度观察C++可以使你知其然并
知其所以然.本书探讨了大量的C++面向对象程序设计的底层运作机制,包括构造函数,函数
,临时对象,继承,虚拟,模板的实例化,异常处理,运行期类型识别等,另外还介绍了一些在实
现C++对象模型过程中做出的权衡折衷.喜欢刨根问底的C++程序员可以从中了解了无数的编
译器解释源代码的细节,以及记忆体分配的细节..
24.The Art of Assembly Language
Author: Randall Hyde
Book Info: 本书以X86系列微机为背景,从简单的Hello程序开始,系统而详细地阐述了X86
微机汇编语言编程的各种基础知识和编程技巧,内容涉及到数据表示,存储器管理,各种数据
类型,过程,与汇编语言相关的体系结构,控制结构,文件,宏指令,位处理指令,字符串指令,
MMX指令,类和对象,以及混合语言编程等,尤其是在高级汇编语言(HLA)方面,该书给予了细
致深入的讲解.对于有意学习X86汇编语言编程的程序员来说,这是一本难得的好书.本书的
作者Randall Hyde在大学中教授汇编语言十多年,并且开发了好几个商用软件,具有丰富的
汇编语言开发经验.该书的英文电子版受到了成千上万的网站和高级程序员的高度评价,已
经成为了高级汇编语言编程方面的一本经典之作.虽然该书的出版时间不长,但在Amazon上
为该书作出评价的人很多,而且几乎所有的人都给予5星的评价,可见其内容之好.可以相信
,随着时间的推移,它在程序员中的影响会越来越大.
25.The Design and Implementation of the 4.4BSD Operating System
Auther: Marshall Kirk McKusick, Consultant Keith Bostic,
Book Info: 是第一本完整描述伯克利最新版本4.4BSD设计和实现的权威性著作.书中介绍
了4.4BSD的内部结构和实现4.4BSD的系统功能中所用的概念,数据结构和算法.书中着重对
4.4BSD 和 AT&T System V UNIX 版本的不同处作了较详细的描述,并对其设计思想及背景
作了清晰的阐述.该书对研究,开发和使用 UNIX 系统,特别是4.4BSD UNIX 实现中的一些新
技术,新特点.有很大的参考价值.
26.John Lions:Lions’Commentary on UNIX 6th Edition with Source Code
Author: John Lions
Book Info: 在20世纪70年代和80
年代这一时期,莱昂的几册"源代码分析",曾是人们争相传看的UNIX系统的"地下出版物".我
们今天来审视这一著作,尽管其中的代码已属过时,但其注释者所作的大部分注??,依然完美
如初.要想学习操作系统原理,就必须阅读和理解源代码.莱昂的工作,使我们中间的大多数
人都能达到这一步.本书中的材料确定是有点过时了,其内容不包括图形,网络以及1975年后
出现的新事物.即使在1979年的编译中也不再使用的线性搜索,基本数据结构和C代码还保留
在本书的源代码中,而该代码面向的计算机非常简单,只比存储器稍稍多一些.从中你会发现
有很多粗糙之处.但是在代码中你也可以观察到其基本结构,该结构沿用了很长时间,而且能
够包容在计算环境中发生的巨大变化.在莱昂的分析中,你可以觉察到新鲜的,经常提出问题
的立场,其中的很多词语和思想都很适宜于教育和学习.莱昂非常清楚地赞赏他阅读的UNIX
源代码,但又立即指出其不足之处.他帮助他的学生理解蕴含在源代码中的很多思想和主题
,也坦率地说明他对该代码某些部分感到的困惑之处.此处重印的文献已经教育了一代人,它
是计算机界中复印数量最多的一本书稿.将此公开记录在案是件大好事.
----丹尼斯.M .里奇
最后我还想提及的是:现在,得到最广泛传播的一份地下计算机科学文献已经可以自由
地使用了.我对1977年中的那一天仍然是记忆犹新,那时我接到邮寄来的此书的第一份草稿
,开始时我对此书并无很多期望,但是最后却是逐字逐句进行了仔细阅读.20年之后,此书依
旧是对一个实际操作系统工作的最好分析说明.
----肯·汤姆森 (汤姆森和里奇因为开发和实现UNIX操
作系统而共同获得1983年ACM美国计算机协会图奖).
27.Operating Systems: Design and Implementation (Second Edition)
Author: Andrew S.Tanenbaum, Albert S.Woodhull
Book Info: 本书是一本理论结合实
践的杰出教材.作者不仅介绍了所有基本原理,如:进程,进程间通信,输入/输出,虚拟存储,
文件系统及系统安全,也介绍了线程概念,同时又详尽地讨论了MINIX系统(一种UNIX兼容系
统),使学生不仅能学到原理,还能通过使用MINIX来了解如何将这些原理应用到真实的操作
系统中.作者更新了所有原理性材料以反映该领域的新进展.基于POSIX的MINIX系统经修订
后可运行在基于奔腾(Pentium)的计算机上.MINIX代码可用于Ethernet和TCP/IP联网环境.
每本书均附光盘,内含MINIX全部源码和可运行各种计算机上的两个模拟程序.每章后均附思
考题.
28.Modern Operating Systems (2nd Edition)
Author: Andrew Tanenbaum
Book Info: 对于软件开发专家以及计算机专业的学生来说,<<现代操作系统>>给出了操作
系统设计一个概念上的全面见解,包括Unix/Linux和Windows 2000的详细个案研究.本书共
分两部分,第一部分详尽讲述了传统操作系统知识,包括进程,存储器管理,文件系统,I/O设
备管理,死锁等内容;第二部分主要介绍了分布式操作系统,包括层次协议,远程过程调用,互
斥操作,分布式文件系统等专题.为加深概念的理解,本书还详细介绍了四个操作系统,包括
两个传统的系统UNIX和MS-DOS;两个分布式系统Amoeba和Mach.此外还简要介绍了NFS,AFS,
ISIS等其他几个系统.本书体系完整,内容丰富,叙述清晰,是大学计算机及相关专业学生不
可多得的教科书,对于从事计算机管理,开发,系统分析等职业的专业人员也是优秀的参考书
.
29.Operating System Concepts
Author: Abraham Silberschatz, Greg Gagne, Peter Baer Galvin
Book Info: 本书是计算机类专业操作系统课程的一本经典教材,自第一版问世以来,经历了
近20年的锤炼,被认为是该课程教材的一本"圣经".它对操作系统的概念和基本原理给出了
清晰的阐述.本书所涉及的基本概念和算法均基于当前商用操作系统,并在非特定操作系统
的通用环境中展开讲解.书中介绍了大量与流行操作系统相关的实现技术,包括Solaris2,L
inux,Windows NT,Windows 2000,OS/2和Apple Macintosh操作系统.此版包括了线程,Wind
ows 2000的新章节,并新增了客户/服务器/模型和网络文件系统,嵌入式操作系统,实时操作
系统,分布式操作系统等.
30.unning MS-DOS
Author: Van Wolverton
Book Info: MS-DOS 上的清晰工作!经过10年无数次竞争,"Running MS-DOS"仍是被其它 M
S-DOS 奉为标准的书.Van Wolverton 的实际的写作风格,上百张屏幕演示,使得"Running
MS-DOS"成为任何时候的DOS指南畅销书.再没有哪个计算机书从读者和评论家那里获得过这
么多的赞扬.这本新的,10 周年纪念版本,包括关于 MS-DOS 6.2 最新版本的重要的信息.如
果您仅仅只是买了一台 PC 机,或者只是升级到了一个新版本”Running MS-DOS"应当成为
您的第一个信息源."Running MS-DOS"实际上是由3本书合成的,包括:MS-DOS 介绍,以及如
何同您的计算机硬件相协调;
一个关于了解和使用 MS-DOS 的完整制导;
一个命令手册,里面有定义,例子和表格,帮您快速寻找信息!
31.Advanced Programming in the UNIX Environment
Author: Richard W.Stevens, Stephen A.Rago
Book Info: 与大多数其他操作系统类似,
Unix对运行其上的程序提供了大量服务,此外,本书与其他Unix编程书籍不同的是,本
书除了讲述Unix系统的编程接口----即系统调用接口和由标准C函数库提供的大量函数之外
,还通过许多例子和基本原理对Unix编程环境做了更深入的解释和剖析,如怎样创建数据库
,页面描述语言的打印机驱动程序,现代拨号程序以及代理进程,处理机间通信,伪终端程序
等.本书作者是Unix研究领域的专家,而本书更被誉为是该领域的圣经宝典,相信每一位读者
都会在学习本书的过程中体会到它的价值所在.
32.Unix Network Programming
Unix Network Programming, Volume.1: The Sockets Networking API, Third Edition
Author: W.Richard Stevens, Bill Fenner, Andrew M.Rudoff, Richard W.Stevens
Book Info: 这是一本利用应用编程接口(API)编写法对计算机网络进行通信的网络编程的
教程.所用的API有两类: 基于BerkeleyUNIX操作系统的"Berkeley"套接字和基于AT&T开发
的X Open传输接口XTI.本书分四大部分:Ⅰ.引论和TCP/IP;Ⅱ.基本套接字(Sockets);Ⅲ.高
级套接字;Ⅳ.XTI X/Open传输接口.四个附录: A.IPv4,IPv6,ICMPv4和ICMPv6;B.虚拟网络
;C.调试技术;D.一些关键源代码.全书内容全面,实用性强,是一本极好的参考书.
UNIX Network Programming, Volume 2: Interprocess Communications (2nd Edition)
Author: W.Richard Stevens
Book Info: 一种良好的进程间通信
(IPC)形式是复杂精致的UNIX程序性能之关键.本书全面深入地介绍了各种进程间通信形式
,包括消息传递,同步,共享内存及远程调用(RPC).作者从介绍IPC的基础及其所要解决的问
题开始,逐步引导读者学习如何使System V IPC和新的Posix标准两者都达到极至.书中Pth
read的内容有较大的扩充,所附的许多例子反映多个线程而不是多个进程.读者通过本书将
能掌握各种现行的IPC技术,其中有:管道和FIFO;Posix和System V消息队列;互斥锁和条件
变量;读写锁;记录上锁;Posix和System V信号灯;Posix和System V共享内存;Solaris门和
Sun RPC;IPC技术的性能测量.本书内容详尽且具有权威性,几乎每章都有精选的习题,是计
算机和网络专业高年级本科生和研究生的首选教材,本书也可作为网络研究和开发人员的自
学教材和参考书.
33.TCP/IP Illustrated
TCP/IP Illustrated,Volume 1:The Protocols
Author: W.Richard Stevens
Book Info: <<TCP/IP详解,卷1:协议>>是一本完整而详细的TCP/IP协
议指南.描述了属于每一层的各个协议以及它们如何在不同操作系统中运行.作者用Lawren
ce Berkeley实验室的tcpdump程序来捕获不同操作系统和TCP/IP实现之间传输的不同分组
.对tcpdump输出的研究可以帮助理解不同协议如何工作.本书适合作为计算机专业学生学习
网络的教材和教师参考书.也适用于研究网络的技术人员.
TCP/IP Illustrated,Volume 2:The Implementation
Author: Gary R.Wright, W.Richard Stevens
Book Info: 本书完整而详细地介绍了TCP/IP协议是如何实现的.书中给出了约50
0个图例,15,000行实际操作的C代码,采用举例教学的方法帮助你掌握TCP/IP实现.本书不仅
说明了插口API和协议族的关系以及主机实现与路由器实现的差别.还介绍了4.4BSD-Lite版
的新的特点,如多播,长肥管道支持,窗口缩放,时间戳选项以及其他主题等等.读者阅读本书
时,应当具备卷1中阐述的关于TCP/IP的基本知识.本书适用于希望理解TCP/TP协议如何实现
的人,包括编写网络应用程序的程序员以及利用TCP/IP维护计算机网络的系统管理员.
TCP/IP Illstrated,Volume 3:TCP for Transactions,HTTP,NNTP,and the UNIX Domain
Protocols
Author: W.Richard Stevens
Book Info: 本书是<<TCP/IP详解系
列>>的延续.主要内容包括:TCP事务协议,即T/TCP,这是对TCP的扩展,使客户-服务器事务更
快,更高效和更可靠;TCP/IP应用,主要是HTTP和NNTP;UNIX域协议,这些协议提供了进程之间
通信的一种手段.当客户与服务器进程在同一台主机上时,UNIX域协议通常要比TCP/IP快一
倍.本书同样采用了大量的实例和实现细节,并参考引用了卷2中的大量源程序.本书适用于
希望理解TCP/IP如何工作的人,包括编写网络应用程序的程序员以及利用TCP/IP维护计算机
网络的系统管理员.
作者简介:Gary R.Wright 研究TCP/IP多年.他是Connix公司的董事长,这个公司的基地在康
涅狄格州,它提供Internet接入和咨询务.W.Richard Stevens(1951-1999)是一位非常受人
尊敬的专家,除了"TCP/IP详解"三卷本外,他还有其他两部最为畅销的作品;"UNIX环境高级
编程"和"UNIX网络编程"(两卷本).
34.Routing TCP/IP
Author: Jeff Doyle
Book Info: 本书是第一本详细而又
完整地介绍互联网络内部网关路由选择协议(IGRP)的专业书籍,堪称有关IGRP方面不可多得
的经典之作.本书共分三个部分.第一部分主要介绍了网络和路由选择的基本知识,对TCP/I
P和静态,动态路由选择技术作了一个整体的回顾.第二部分是本书的精华,这一部分详细深
入地讲述了各种常用的内部网关路由选择协议,如静态路由,RIP,RIPv2,IGRP,EIGRP,OSPF,
ISIS等,每一章除了对该协议的实现机制和参数详尽阐述,使读者对协议的实现原理有一个
清晰的理解外,还通过在实际网络环境中的实例,详细地论述了该协议在Cisco路由器上的配
置和故障处理方法,使读者获取大量解决实际问题的专业技能.第三部分介绍了如缺省路由
,路由过滤等多种有效的路由控制工具,用来创建和管理多个IP路由选择协议的协调工作.本
书不仅适合那些需要准备通过CCIE考试的考生,而且也适合任何需要完整理解TCP/IP内部路
由选择协议的网络设计和工程人员阅读.本书中对协议细节的讲解和对网络实例的探讨相信
会让读者获益匪浅.
CCIE Professional Development Routing TCP/IP Volume 2
Author: Jeff Doyle, Jennifer DeHaven Carroll
Book Info: 本书深入系统地阐述了
TCP/IP路由技术,内容包括几种重要的网络协议,如外部网关协议(EGP),边界网关协议(BGP
4),以及相应的高级IP路由技术与应用�D�D网络地址转换,IP组播路由技术,IPv6技术,路由
器管理等.本书共分9个章节,首先介绍并讨论了主题内容的基本原理,接着是设计用来展示
真实网络环境中相关概念的一系列配置范例,最后提供给读者经实践验证过的故障排除方法
以解决网络可能会出现的问题.重点介绍了自治系统之间的路由选择策略以及诸如组播和I
Pv6等更具挑战性的路由选择和实施技术.
35.Data and Computer Communications,Seventh Edition
Author: William Stallings
Book Info: 本书是著名计算机专业
作家 William Stallings 的经典著作之一,内容涉及最基本的数据通信原理,各种类型的计
算机网络及多种网络协议和应用.这一版对原有内容做了彻底的修订和重组,使新版对通信
各专题的阐述更全面,更清晰.同时,新版加强了无线通信和组网,吉比特以太网,区分服务,
MPLS和TCP/IP实现细节等内容.此外,本书还包括词汇表,参考文献,缩写词对照表.每章都附
有习题和建议,以便读者进一步阅读.
36.Programming Pearls, 2nd Edition
Author: Jon Bentley
Book Info: 如果让程序员们列出他们最喜欢的书籍,Jon Bentley的“编程珠玑”通常可以
位于经典之列.如同珍珠来自于曾经折磨牡蛎的沙粒,程序设计的珍珠也来自曾经折磨程序
员的实际问题.Bentley的珍珠建立在坚实的工程学基础上,在洞察力和创造力的王国中为那
些恼人的问题提供了独特而巧妙的解决方案.通过一些精心设计的有趣而且颇具指导意义的
程序,本书对众多实用程序设计技巧及基本设计原则作了清晰而机智的描述.因此,”编程珠
玑”得到各个层次程序员的青睐并不让人感觉意外.
为了反映当今的程序设计方法和环境,Bentley在本书中彻底更新了第一版里的大多数素材
.此外,他还新增加了以下三个方面的内容:1.测试,调试和计时 2.集合表示 3.字符中问题
对原来的所有程序都重新进行了改写,并生成了等量的新代码.您可以从本书网站(www.pro
grammingpearls.com)获取所有程序的C或C++实现.
Book Reviews:
"编程珠玑"第一版是我职业生涯早期阅读过的最有影响力的书籍之一,第一次从该书中学到
的许多观点很久以后仍然使我受益匪浅.Jon在第二版中对素材进行了大量更新,这些新例子
的新鲜程度给我留下了深刻的印象.
----Steve McConnell "Code Complete"等多部畅销书作者
37.The Mythical Man-Month: Essays on Software Engineering, 20th Anniversary Edition
Author: Frederick P, Brooks,Jr.
Book Info: IBM大型电脑之父 Fred Brooks 二十余年开发经验的汇集,远谋深虑,字字珠玑
.技术之巧与人文之美的完美结合.本书自第一版以来,畅销二十余年不衰,是软件领域绝无
仅有的必读经典.
作者简介:Frederick P 曾荣获美国计算机领域最具声望的图灵奖(A.M.Turing Award)桂冠
.美国计算机协会(ACM)称赞他"对计算机体系结构,操作系统和软件工程做出了里程碑式的
贡献."
Brooks 博士是北卡罗莱纳大学 Kenan-Flagler 商学院的计算机科学教授.他被认为是"IB
M 360系统之父",曾担任了360系统的项目经理,以及360操作系统项目设计阶段的经理.凭借
在上述项目中的杰出贡献,Brooks博士以及Bob Evans和Erich Bloch在1985年荣获了美国国
家技术奖(National Medal of Technology).Brooks博士早期曾担任IBM 公司Stretch和Ha
rvest计算机的体系结构设计师.<br /> Brooks 博士创立了北卡罗莱纳大学的计算机科
学系,并在1964~1984年期间担任系主任.他还曾任职于美国国家科技局和国防科学技术委
员会.他目前的教学和研究方向是计算机体系结构,分子模型绘图和虚拟环境设计.
38.The Pragmatic Programmer
Author: Andrew Hunt,David Thomas
Book Info: 本书直击编程阵地,穿过了日益增长的现代软件开发的规范和学术,对核心过程
进行了审视----该过程采取了供需结合的工作方式和令人欣喜的可维护代码.本书包含的内
容从个人责任和职业发展到保持代码的灵活性,使之易于改编和重用.本书由各个相对独立
的章节组成,其间不乏好玩的轶事,详细的实例和有趣的对话,描述了软件开发各个方面的最
好实践和主要缺陷.无论你是一个新入门的编码者,一个有经验的程序员,还是负责软件项目
的经理,通过每日学习这些课程,都会在个人生产力,准确率和工作满意度上有快速的增长.
你所学到的技巧和开发习惯和态度将为你在职业生涯中取得长期成功奠定基础.你将成为又
一Pragmatic Programmer.
39.The Art of UNIX programming
Author: Eric S. Raymond
Book Info: 荣获美国Software Development Productivity Award大奖作品!
本书是作者封笔30年后历时5年创作而成,是一部难得的软件工程方面的佳作.作者首次将哲
学,设计模式,工具,文化和传统结合在一起,使得UNIX成为世界上最好且最具创新意义的软
件,并展示了如何将其拓展到Linux和当今的开源(open-source)运动中:通过取自最主要的
开源项目中的示例,作者向UNIX和Linux编程人员展示了如何更巧妙地创建软件,使其更雅致
,更灵巧,更具可重用性且具有更长的生命期
本书主要介绍了Unix系统领域中的设计和开发哲学,思想文化体系,原则与经验,由公认的U
nix编程大师,开源运动领袖人物之一Eric S.Raymond倾力多年写作而成.包括Unix设计者在
内的多位领域专家也为本书贡献了宝贵的内容.本书内容涉及社群文化,软件开发设计与实
现,覆盖面广,内容深邃,完全展现了作者极其深厚的经验积累和领域智慧.
40.Peopleware roductive Projects and Teams
Author: Tom DeMarco, Timothy Lister
Book Info: Tom Demarco 和Tim Lister 的"Peopleware productive Projects and Team
s"第一版于1987 年出版,专门讨论了软件开发和维护的团队管理问题,向传统的管理方法提
出了挑战,推崇人本管理思想,给予软件工人自由和信任.和"人月神话"一样,该书现在已经
成为软件团队管理的经典之作.1995 年,Larry Constantine 出版了一部题为"Constantin
e 论人件"的论文集,扩大了"人件"概念,把那些使用软件的人也包括进来.1999 年2 月,"人
件"第二版出版,增补了8 章新内容.这些增补的内容视角更加宽广,对比较大型的组织中的
团队如何运作进行了探索.
41.Computer graphics C Version 2nd ed
Author: Donald Heam, M.Pauline Baker
Book Info: 这是计算机图形学领域的一部经典之作,
作者Foley,van Dam等是国际图形学界的著名学者,学术带头人,而且本书英文
版自出版以来,一直是各国大学计算机图形学课程的主要教科书.本书是高等院校计算机专
业本科生,研究生计算机图形学课程的理想教材,是相关领域专业人员开展研究工作的优秀
参考书.
42.Tricks of the 3D Game Programming Gurus-Advanced 3D Graphics and Rasterization
Author: Andre LaMothe
Book Info: 本书是著名游戏程序设计类书籍作者Andre LaMothe的畅销书.在书中随处可见
许多有趣但又有一定难度的源程序.作者循循善诱地从程序设计的角度介绍了在Windows环
境下进行游戏开发所需的全部知识,包括Win32编程以及DirectX中所有主要组件(包括Dire
ctDraw,DirectSound,DirectInput和DirectMusic).书中还用单独的章节详细讲授了2D图形
学和光栅化技术,游戏算法,多线程编程,文本游戏和解析,人工智能(包括模糊逻辑,神经网
络和遗传算法),物理建模(完全碰撞反应,动量传递和正反向运动学)及实时模拟等游戏程序
开发中的关键技术.
43.Compilers Principles, Techniques, and Tools
Author: Alfred V. Aho, Ravi Seth, Jeffrey D. Ullman
Book Info: 本书另外一个响亮的名字就是龙书.
原因是这本书的封面上有条红色的龙.里面讲解的核心编译原理至今都没有变过,所以一直
到今天,它的价值都非凡.这本书最大的特点就是一开始就通过一个实际的小例子,把编译原
理的大致内容罗列出来,让很多编译原理的初学者很快心里有了个底,也知道为什么会有这
些理论,怎么运用这些理论.而这一点是我感觉国内的教材缺乏的东西,所以国内的教材都不
是写给愿意自学的读者,总之让人看了半天,却不知道里面的东西有什么用.
44.Computer Systems A Programmer's Perspective
Author: Randal E. Bryant, David R. O'Hallaron
Book Info: AMAZON五星图书,最伟大计算机科学教材之一
卡耐基梅隆大学计算机学院院长,IEEE和ACM双院士倾力推出
超过80所美国和世界一流大学计算机专业选用本书为教材书英文版久负盛名,被众多专业人
士称为"最伟大的计算机教材"之一,著名的美国卡内基梅隆大学计算机科学系一直将本书作
为教材使用,程序员眼中的透彻讲述计算机系统的扛鼎之作.作者Randal E. Bryant是卡耐
基梅隆大学的计算机科学系主任,ACM和IEEE双院士(Fellow),其研究成果多次获得ACM和IE
EE颁发的大奖.本书共分十三章,分别介绍了信息的表示和处理,程序的机器级表示,处理器
体系结构,存储器层次结构,静态和动态链接,虚拟存储器,系统级I/O,网络编程和并发编程
等精彩内容.其目的是解释计算机系统的所有本质概念,并向读者展示这些概念是如何实际
地影响应用程序的正确性,性能和实用性.与其他主要针对系统构造人员的系统类书籍不同
,这本书是写给程序员的,是从程序员的角度来描述的.本书为软件和硬件之间搭起了一个桥
梁,它给出了一种帮助读者分别从硬件和软件的角度去理解一个程序及其行为的途径,这也
填补了国内计算机系统教学中的一个空白.
本书的最大优点是帮助读者理解概念,让读者很清楚地在脑海中构造一个层次型的计算机系
统,从最低层数据在内存中的表示到流水线指令的构成,到虚拟存储器,到编译系统,到动态
加载库,到最后的用户应用.本书提供了大量的例子和练习及部分答案.尤其值得一提的是,
对于每一个基本概念都有相应的笔头或程序试验,加深读者的理解.
Book Reviews:
我坚信从程序员的角度来看计算机系统对教会学生计算机的内部结构非常有帮助.
----Kostas Daniilidis,宾
夕法尼亚大学
这本书讲述事物的方法与众不同,但是和我想要的课程进行方式类似.
----John Greiner,Rice大学
这是一项出色的工作,是这一领域教学方法的一次革命.
----Michael Scott,罗切斯特大学