计算机经典书籍【转】

【动机】就计算机这个专业来讲吧,由于我是非科班出身的学生,要从新开始补相应的知识,目前定下来要学习的基础理论知识有:离散数学,数据结构与算法, 

组成原理,汇编,操做系统,网络等等,有的时候以为这里每个知识点要学的深刻的话都是无底洞,不过我又是那种喜欢追根究底的人,好比学习a知识的时候要 

用到b知识,我会停下来学学b知识,而后一直这样下去.....有时候也会以为很累,以为没有一个尽头。最近也看到一个观点:读书应该“不求甚解”,我想了好久 

,仍是不明白其中的大意。上面我提到的那些知识点要怎样才能达到“知道”的度?通常的,“知道”这个度又是如何掌握的? 


-------------------------------------------- 

数学 

-------------------------------------------- 
离散数学 

============================================ 

具体数学:计算机科学基础(英文版.第2版) 

【原书名】 Concrete Mathematics A Foundation for Computer Science(Second Edition) 
【原出版社】 Addison Wesley 
【做者】 (美)Ronald L.Graham,Donald E.Knuth,Oren Patashnik 
【丛书名】 经典原版书库 
【出版社】 机械工业出版社 
http://www.china-pub.com/computers/common/info.asp?id=7210 

【参考资料】 
http://www.cfcs.com.cn/fjas/ebook.htm 
http://privatewww.essex.ac.uk/~mpthak/xfiles.htm 

【评论】 
若是认真读这本书,会改变咱们从小已经被糟蹋了的数学思惟。慢慢读,不该该太功利。做者颇有趣。若是认真对待里面的公式,会发现它们很奇妙。一点也不枯燥前天收到了本书 , 大师写的就是不同, 是学习计算机方面的绝好的书,文字很幽默并且它教给你的不是金子而是点石成金之术,据说好久之前国内就引进了。也有中文版,庄心谷老师翻译的(中文版:《具体数学》,出版社:西安电子科技大学,这本书的89年版在中国有翻译出版,译者好象是庄心谷,由西安电子科技大学出版社出版,出版时间是1992年。)。我还喜欢一本是RICHARD A.BRUALDI的组合数学,写的很是好,绝对经典的一本好书,“图灵奖”得主Donald E.Knuth撰写《计算机程序设计艺术》第1卷和第3卷的数学基础 
做者文风幽默却是确确实实的。书上页边的旁注颇有意思。说是学生们笔记中的旁注。之前的学生的注(或五花八门的评论),能如此大量出如今教科书里,国情真是大大的不一样。 
训练思惟的好书,国内找不到这样的书。看这本书不轻松,要有很好的数学功底,但看懂它能极大的提高你的功力,要想成为真正的牛人这本书不容错过! 
历来计算机数学不分家,这本书能够真正的称为计算机的数学基础,出自名家之手,又被斯坦福等大学采用,看后收益不浅,果然不一样凡响。想学好计算机,这本书毫不会令你失望。 这本书好就好在让人的思惟为之一变,让人以为原来事情能够这样看啊!~ 读过的最好看的数学书。 

亚马逊如是说:The material is very dense, and it's not a book I'd recommend for casual reading: this is stuff you only work 

through if you're going to need it. But if you *are* going to need it, this book will make it a lot more pleasant. 
不能当小说看。可是当须要时,此书将变得乐趣无穷。 

-------------------------------------------- 

算法 

-------------------------------------------- 

数据结构与算法(英文影印版) 

【原书名】 Data Structures and Algorithms 
【原出版社】 Pearson Education 
【做者】 Alfred V. Aho, John E. Hopcroft, Jeffrey D. Ullman 
【丛书名】 大学计算机教育国外著名教材系列(影印版) 
【出版社】 清华大学出版社 
http://www.china-pub.com/computers/common/info.asp?id=14954 

【参考资料】 

【评论】 
本书是20多年前出版的,采用pascal描述。 
该书有中译本,书名《数据结构与算法》,唐守文等翻译,1987年科学出版社出版。 

Bible!!20年来这本书依然是讲解基本数据结构与算法最清晰、优美、权威的教科书! 
aho帮的data structures and algorithms和cormen等introduction to algorithms是学习数据结构与算法最完美的方案! 

这本书是做者另外的那本书《Design and Analysis of Computer Algorithms》的前6章的精简版本。 
http://www.cocw.net/mit/Electrical-Engineering-and-Computer-Science/6-046JFall-2004/Readings/index.htm 
Aho, Alfred V., John E. Hopcroft, and Jeffrey D. Data Structures and Algorithms. Reading, MA: Addison-Wesley, 1983. ISBN: 

0201000237. (http://www.china-pub.com/computers/common/info.asp?id=14362) 

我以为三位大师的书最大的特色是好懂好学,深刻浅出,解释的例子举得很好,可以让你弄清原理。 

这本书很是很是适合做为计算机专业本科生数据结构和算法的教材,至今为止我还没找到比这本书更好的介绍基本数据结构和算法的书。正如aho帮经典的编译原 

理书(dragon book)同样,这本书一样经典、权威、优美、清晰!! 

============================================ 


算法引论:一种创造性方法 

【原书名】 Introduction to Algorithms: A Creative Approach 
【原出版社】 Addison Wesley/Pearson 
【做者】 (美)Udi Manber 
【译者】 黄林鹏 谢瑾奎 陆首博 
【出版社】 电子工业出版社 

本书是国际算法大师乌迪?曼博(Udi Manber)博士撰写的一本享有盛誉的著做,组织结构清晰且易于理解,强调了创造性,具备浓郁特点,时至今日仍有巨大的 

价值,适合做为计算机及相关专业算法和高级算法课程的教材。 

http://www.china-pub.com/computers/common/info.asp?id=26775 

============================================ 

算法导论(第二版 影印版) 

【原书名】 Introduction to Algorithms(Second Edition) 
【原出版社】 The MIT Press 
【做者】 (美)Thomas H.Cormen Charles E.Leiserson Ronald L.Rivest Clifford Stein 
【出版社】 高等教育出版社 

http://www.china-pub.com/computers/common/info.asp?id=6434 

【参考资料】 
e-book: 
http://www.cfcs.com.cn/fjas/ebook.htm 
http://219.139.240.53/Soft/Soft_12024.htm 
http://online.ysu.edu.cn/personal/yyf/weitao/taocp/clrs.htm 

本书答案(solutions to the exercises in the book: "Introduction to Algorithms" by Cormen, Leiserson and Rivest.) 
http://www.itu.dk/people/beetle 
Solutions for the second edition: 
http://www.it-c.dk/people/beetle/solution.pdf 
http://www.it-c.dk/people/beetle/teaching/solution.pdf 

课程的录像 
http://18.89.1.101/sma/5503fall2001/index5503fall2001.html 

对应该书的rm录像的下载地址: 
http://acm.ustc.edu.cn/~algorithm/video/Introduction_To_Algorithm/ 

对应于录像的麻省理工学院这门课(6.046J / 18.410J 2001秋季课程:算法导论)的“开放式课程网页”: 
http://www.cocw.net/mit/Electrical-Engineering-and-Computer-Science/6-046JIntroduction-to-AlgorithmsFall2001/CourseHome/ 
上面能够下载到完整的pdf版的“课堂讲义”、“习题”、“习题答案”、“做业”、“做业答案”、“试卷”和“试卷答案”,另外还有“教学大纲”、“教学时程”、“相关阅读 

资料”等等资料 

勘误 
http://www.cs.dartmouth.edu/~thc/clrs-2e-bugs/bugs.php 


练习题部分答案下载: 
http://ftp.cdaan.com/sy/light/clrs_study.pdf 

MIT OpenCourseWare 
http://ocw.mit.edu/OcwWeb/index.htm 

【评论】 
这本书的英文简称或昵称不是ITA,而是CLR(初版)或CLRS(第二版),其实就是几位做者的姓名缩写加在一块儿 

百科全书的组织方式,麻省理工的团队做品,经典中之经典,做者刚刚得到去年的图灵奖,国外绝大多数大学算法课的必备教材。 

这本书的大部份内容是美国大学的本科教学内容。 
这是一本经典,在CiteSeer被引用最多的文章排名中位居第二。http://citeseer.nj.nec.com/articles.html 

许多美国大学的研究生院都把这本书做为教材,详细讲解。在《程序员》的算法书排名上位列第二,仅次于大名顶顶的 the art of computer programming 

我最初注意到CLR大约是96年,当时看到很多论文后面把它做为参考文献。后来领导安排我教离散数学,这不是个人特长科目,因此备课的时候我找了很多相关的 

书籍和文章,其中包括纯数学的,也包括数据结构和算法方面的,由于我更关心学生在作课题的过程当中的实际算法设计和分析能力。我发现最近出的一些数据结构 

和算法教材除了把TAOCP做为权威来源之外,也把CLR做为标准参考书。TAOCP的传奇不少人都熟悉,但CLR知道的就很少了。我也是同样无知,因此就在网上找了 

一些材料,了解到CLR的一些特色。个人感受是用CLR教研究生是一个不错的选择(咱们教研室教算法的老师以为它比Aho帮的算法设计与分析深度浅,可是我说 

CLR更全、更现代、学生更容易接受)。 

讲算法讲的比较好的几本书之一。虽然本身英文不是很好,看这本书是看完一节,查一次英汉词典,可是整体来讲,书流畅叙述了对于算法的讲解,总体仍是比较 

通俗易懂的。原汁原味的书,看着是种享受。不过读过几遍后,仍是有不懂的地方,有时还要温习一下,又会有不一样的领悟。 

做者之一Ronald Rivest是RSA的设计者,于2002年得到图灵奖。 

若是不想急功近利,又不想陷入基础理论的浩瀚烟海,那么本书就是你们的最好选择.算法类很优秀的书,通俗易懂,深刻浅出,很适合中初类读者。 

<<现代计算机经常使用数据结构和算法>>是CLR 1ed(美国1990年出版),1994年南京大学计算机系潘金贵翻译,书号是ISBN 7-305-02424-4/TP*83,花了两年多时 

间1992年翻译出来的,1994南大出版. 

既有详细的解说又有严格的数学论证,好书,强烈推荐。 算法书中的经典!内容全面准确,对每一个算法都有理论上的证实,语言严谨流畅,是每一个算法爱好者或程 

序设计人员的必备参考书! 

按照这本书本身的讲法,它不只适合研究生,也适合本科生,由于书中的材料被组织成相对较小的章节,能够灵活地取舍和组织。对国内的本科生来讲,用英语学 

习专业材料一般有必定的问题。主要缘由是不习惯而不是看不懂。这本书的写做风格平实(或者说枯燥),应该不难阅读。可是若是是头一次阅读专业英文教材, 

通常会感受到不容易造成摘要。 

行文流畅,让人有欲罢不能之感.有些与数据结构重合的部分一对比不知比严蔚敏的相应章节好上多少,真正的大师水准.就我的感受,隐藏在算法背后的设计思想与 

设计技术剖析的不细,更多的笔墨放在了证实上,此乃白璧微瑕. 

关于这本书和那本《algorithms in C++》的感想: 
那本书是用 C++ 代码来描述算法。做者是老师,而不是工程师。这本书是用伪码来描述算法。 
那本书偏重算法的实现。这本书偏重算法的证实和分析。 
那本书的习题多为“Write a program ...”。这本书的习题多为“Give an algorithm ...”or “Give a proof ...”. 
这本书比那本书厚。 

内容特色是抽象和形式化,既有严格的理论证实,又具备很强的构造性 

算法是程序设计的灵魂,而此书堪称算法分析著做中的“独孤九剑”,故我强烈推荐。 

我选的第一本算法教材,本书的确很全面论述了算法的内容,并且对各个层次读者都有考虑,建议买一本读一读,很值。 
理论严谨,启发性高,具备大量的图表;对算法一步步的推导,万丈高楼从地起!既适合研究生与科研人员,又适合初学者,看了绝对大有裨益!! 

门槛低,适用人群广!想做程序员,算法必须学,这是少有的不打击积极性的书。 

绝对的经典!深刻浅出!大量的图表,对算法不是直接给出,而是一步步的推导,让人有知其然而知其因此然的感受!适合各类水平的人看,若是你愿意,甚至可 

以把他做为数学书看!!着次地,怎一个爽字了得。 

虽说是抽象了点,可是只有这样才可以从最基本的原理出发,获取算法的精髓。这本书既特别适合初学者,对想要更深一层研究算法的也颇有裨益。最适合计算 

机算法初学者的名著! 

它很厚实,不只在于它的尺寸,更在于它所承载的知识。 
外形的厚重与阅读的舒畅使它成为经典的对立统一,就像是一名外形高大的却身怀绝世轻功的武林高手。 

几乎全部的算法教科书都把这本《算法导论》列为参考首选。对每一个算法都给出了严格的数学证实,让人看了有种:知其然而知其因此然的感受!! 

咱们倾向于把CLR和TAOCP进行对比。 
从写做质量上看,二者都是罕见的上品。 
从范围上看,TAOCP的整套书比一卷本(很庞大的一卷!)的CLR宏大,可是TAOCP的后几卷还没出来,CLR覆盖的有些内容在TAOCP的前三卷里面没有讨论。 
从详尽程度上看,CLR很详尽,而TAOCP极详尽。 
从做者的声誉上看,写TAOCP的Knuth是大名家,百年一遇的天才;主笔CLR的Cormen从学术成就还不能说已经很是卓著。固然CLR中的R即Rivest也是个很是人物 

,公开秘钥密码算法RSA就是此公的杰做。 
有一个现象颇有意思,TAOCP是Knuth在CalTech上研究生的时候就开始写做的,而CLR是Cormen还在MIT作博士生的时候就已经出版了! 
从出版后的影响上看,TAOCP出版了三卷后,Knuth就得到了图灵奖,而这三卷书则塑造了计算机科学。CLR目前是算法的标准教材,美国许多名校的计算机系都使 

用它,另外许多专业人员也常常引用它。 
我以为Knuth的写做有一个标准,那就是成为科学史上的里程碑。咱们会想起欧几里德的“几何本来”,牛顿的“天然哲学的数学原理”。 
CLR会达到什么地位,一代人、两代人的标准教材仍是更高?Only time will tell. 
从书籍产生的意义讲:AOCP和CLR不能项比较。AOCP在计算机领域是属于开创性的做品,具备学科经典的地位。尔后,有关数据结构和算法的书基本都是对AOCP的 

解读、大众化、实用化,同时增长一些改进的、新的算法。CLRS基本也属于此类。只是他的写法较好,理论深度适中。另外,两书的习题都很是丰富。我认为,如 

果不作习题,书的价值将减小一半。 

但TAOCP给人的感受比较学院派,而ITA则相对来讲较为实用一点。 

============================================ 

编程珠玑(第二版) 

【原书名】 Programming Pearls Second Edition 
【原出版社】 Addison Wesley 
【做者】 Jon Bentley 
【译者】 谢君英 石朝江 
【丛书名】 大师签名系列 
【出版社】 中国电力出版社 

http://www.china-pub.com/computers/common/info.asp?id=16802 
http://www.china-pub.com/computers/common/info.asp?id=18348 [英文影印版] 

============================================ 

STL 源码剖析 

【做者】 侯捷 
【丛书名】 侯捷译做系列 
【出版社】 华中科技大学出版社 
http://www.china-pub.com/computers/common/info.asp?id=6384 

-------------------------------------------- 

网络 

-------------------------------------------- 
计算机网络(第4版) 

【做者】 谢希仁 
【丛书名】 高等学校电子信息类规划教材 
【出版社】 电子工业出版社 
http://www.china-pub.com/computers/common/info.asp?id=12772 

【评论】 
国内网络书籍绝对的经典之做! 

============================================ 

计算机网络(第4版)(中文版) 

【原书名】 Computer Networks, Fourth Edition 
【原出版社】 Pearson Education 
【做者】 Andrew S.Tanenbaum,Vrije Universiteit,Amsterdam,The Netherlands 
【译者】 潘爱民 
【丛书名】 世界著名计算机教材精选 
【出版社】 清华大学出版社 

http://www.china-pub.com/computers/common/info.asp?id=19442 

http://www.china-pub.com/computers/common/info.asp?id=15894 [英文影印版] 

【参考资料】 
本书的PPT: 
http://authors.phptr.com/tanenbaumcn4/ 

【评论】 

国防科技大学倪鹏云教授关于该书的评论,可参见http://www.china-pub.com/main/sale/renwu/mainb.htm 

《计算机网络》这本书有20多年的历史(1980年第1版)和积累,做者有丰富的知识基础和教学经验。本书基本上按照从底向上的思路,内容涉猎很是广,可是并不 

深刻,然而做者提供了不少参考资料,因此,这本书既是一本教材,也是一本很好的参考书。实际上,在国外,还有彻底不一样思路的教材也一样很受欢迎,好比 

James Kurose和Keith Ross合著的《Computer networking: A top-down approach featuring the Internet》也是一本不错的网络教材,它从应用层 

开始讲起,由上至下,由浅入深,适合于做为学习用书。 

其实这一版本的书和第三版区别不大,第四版主要是删掉了第三版中讲述ATM的部分,而后是将之前应用层中的安所有分做为第8章重点讲述,其他的差异很小.我的认 

为第版仍是至关不错的彻底顺应了历史潮流,ATM做为已经或是将要被淘汰出局的技术,确实不用花太多的时间在上面.做为当前网络研究方面热点的安全问题确实应 

该重点讲述. 

本书讲解详尽,并尽可能兼顾全面与重点突出之间的均衡,这种内容安排相信能够知足大多数人的需求,应该说该书的特色就是内容全面,并且紧跟潮流,对典型的 

技术案例作了重点剖析。 

我以为它写的像一本大全类的书,什么都说,结果什么说的不痛不痒,有点像走马观花那样子,像是简介的书那样,不深刻,真的不深刻,我还觉得外国老写的书都是比 

较风趣幽默的,不过好像看上去也不怎么风趣幽默!还有失望的是,这么大的一本书,在网络硬件和网络OS这方面的知识却介绍的很少,结果我不少想查找也没找到. 
我以为若是是初学者看这本书的话,不见的会很好,由于这里面只是一个简介,忽略了一些细节的问题和各个原理/协议/标准之间在的联系和串通,忽视了一个总体的 

网络通讯环境下的通讯的怎么开始,过程是怎么样,结果是怎么样,在这样的一个过程当中,各个原理/协议/标准的执行以及他们的细节问题, 
总之我以为这本书是把网络的各个部分分块了,没有从总体上来说网络的实现技术.因此我不建议初学者看着本书,可是当你不是初学者的时候,看这本书对你来讲就 

好像是在看网络概论之类的入门书籍了,真是矛盾啊. 

人说“一本好书带来一个世界”,可这本书是“一个章节带来一个世界”!做者的知识广博让人敬佩,第二章的傅立叶分析光几句话就把之前学了一个学期信号课也不 

甚了了的地方讲清楚了 

关于谢老的电子工业出版社的一样名称的书与这本书的对比: 
强烈建议初学网络的网友,去看谢老的那本书,谢老的那本书,写做很是严谨,并解释清楚了许多初学者或者是工做多年的仍混淆的基本概念,绝对称得上字字珠 

矶。关键在于谢老将一些老的网络技术做了删减,增长了很多当前热门的网络技术,能够说是一本跟得上时代的网络教科书。 
Andrew的这本有本身的特点,但我以为在许多方面,比不上谢老的这本国产书。它的内容庞杂,该讲清楚的地方没有讲清楚,初学者容易混淆的地方则一笔带过, 

看了这本书的人,也许要将这样的混淆概念带到之后的工做中去。这些方面的例子能够具不少。如:路由器的基本原理,谢老的这本就讲得比较好。TCP协议流量 

控制部分也是谢老的这本比较好。谢老的这本还将ALOHA的原理做为附录,从正文中删除了,这也是适应网络发展的要求。最短路径算法若是看Andrew的,你很难 

懂,但看了谢老的附录里的算法描述,一看就懂,还能明白Andrew没讲的内容。对于应用层协议,谢老的这本抓住重点,写得简明扼要,由于读者基本接触过或学 

到过应用层的一些协议原理。该细的细,该粗的粗。而andrew这本倒是眉毛胡子一把抓,什么都罗列来,什么也没讲明白。特别是关于SNMP部分,没有谢老的这 

本条理清楚。 
很少讲了,个人意思在于:咱们不要迷信外国做者所谓的畅销书,其实国内做者写的书比他们更好,咱们应该从实际出发,选择适合本身的书。 
我看过谢老的前几章,确实讲的很清楚。如发送速率(传输速率)和传播速率。很可贵国内做者的书比国外好的。 

我对比了二者,以为仍是谢老师的书更加深刻浅出,道理清楚,概念解释的有针对性;而经典呢,彷佛一会儿难以让人看进去,并且更像是一篇篇论文,并不解释 

太多的基础概念和道理,讲解的是技术。因此,我也建议初学者或者向我这样的带着工做中的疑惑去看书的人,仍是买着一本;而有必定水平的固然看经典较好, 

也可做为收藏。 

这两本书各有侧重点,写书的目的不太同样。谢老的这本书侧重于网络应用,讲述了现有网络的基本原理,侧重于现有网络的基本概念,写得很是流畅,很是适合 

有志于网络应用的读者,这也是国内写得最好的一本网络应用教程。 
而Andrew的那本书,侧重于讲网络的构成原理,适合于有志于网络设计、网络开发的读者,其理念在于启发你设计一个完整网络所要考虑的问题。这本书不算是最 

好的,可是一本百科全书(有点这个意思)。个人朋友在加拿大读书,他们学校用的教材我也看了,比这两本都要好,理论也讲得比较深。 
因此这两本书各有侧重点,但都是两本比较好的书,读者应该按照本身的发展方向来选择所用的教材。 

讲解的很是详细!对一项技术的优缺点,应用方向,不一样技术,不一样协议之间的比较都做了详细深入讲解!与谢希仁的那本《计算机网络》相比,这本书写的更深 

,知识面更广!不过谢老这本知识结构紧凑,每一个概念都给出严格定义,较好的把握了重点!因此我仍是建议两本一块儿看 

和你们讨论如下学网络必看的一些书籍 
我以为这本和谢老的那本以及tcp/ip详解应该是必看的 
不知你们有没有看过 
机械工业出版的 
计算机网络: 自顶向下方法(原书第3版) 
是否是可列于必看之列 
还有高传善翻译的一本网络互连书 
这些书都很经典 

学网络,要看的书出这本书之外,还有谢希仁的同名的书,固然《TCP/IP祥解:卷一:协议》也是必不可少的。 
个人感受是这本书是一个很是好入门及提升阶段,而《TCP/IP祥解:卷一:协议》则是精通必需的。 
谢老的书是对这两本书的不错的结合。但深度不及这两本书。 

网络是一个很是大的概念,不可能在一本入门教材里讲得很深刻完全。若是您想要了解那些advanced topic背后的基本原理:若是要学习BSD Socket能够看 

rstevens的书,要学习Internet协议能够看Stevens写的TCP/IP Illustrated和Comer的TCP/IP网际互联,要学习分布式对象系统能够看《分布式系统原理 

》,要学习协议的形式化验证方法能够看林闯的书……等等 

Stevens写的TCP/IP Illustrated和Comer的TCP/IP网际互联跟“计算机网络”这本书是互补的。前者针对TCP/IP,后者讲网络原理。 

比较经典的计算机网络首先推崇的是Richard Steven的书,tcp/ip illustrator三卷;那个时候还流行过Douglas Comer教授的 "internetworking with 

tcp/ip 三卷。 


-------------------------------------------- 

操做系统 

-------------------------------------------- 
现代操做系统 (第2版) 

【原书名】 现代操做系统(英文版.第2版) [原书信息] 
【做者】 (荷)Andrew S. Tanenbaum 
【译者】 陈向群 马洪兵 
【丛书名】 计算机科学丛书 
【出版社】 机械工业出版社 
http://www.china-pub.com/computers/common/info.asp?id=25383 
http://www.china-pub.com/computers/common/info.asp?id=4802 [英文版] 

Andrew S.Tanenbaum ,学界泰斗 
五大名著,横跨三个基础领域: 
操做系统:设计与实现;分布式操做系统;现代操做系统;计算机网络;结构化计算机组成 
思路清晰,以发展为主导,注意启发式引出问题,不只是计算机专家,亦是教育你们 

操做系统领域的经典之做,已被国外多所重点大学采用为教材或做为教学参考书。经过学习本书,读者定能对操做系统的功能与实现技术有全面的了解。 

《操做系统概念(6)》和《现代操做系统(2)》,这两本书都是很经典的操做系统书籍 

两本都是最经典的,可是,我觉的这本内容细一点,虽然操做系统概念容易读些,可是分布式部分太范,且io和文件部分我的觉的内容有些泛了,有些占篇幅了,而这本 

是每张都有结合实例,理论也有深度,去掉了分布式。尤为是《操做系统概念》分布式部分,点了又不深刻,分布失算法思想只给了个纲要,拜占庭问题更是粗略, 

分布式部分就象《现代操做系统同样》该去掉的! 

内容很好,比operating system concept要详细深刻,若是再有本《操做系统设计与实现》2版,参考参考minix实现,那就是绝配了! 

因此这本书要比操做系统概念好,为啥不少人看<<操做系统概念>>好呢,那是由于将的比较容易懂,我看<<操做系统概念>>用了5天,看小说同样,它的不少东西都是 

点到为止,虽然是有收获,但看完了,还要参考<<现代操做系统>> 

这本应该更好些,<操做系统概念>部分讲的并很差,只让人对操做系统结构的总体概念有个了解,深度就比不上modern operating system了,我两本都看了,好比 

io,文件等部分,不少的关键数据结构都没有给出来 

我是University of Melbourne的。我学OS这门课程时用的就是这本书做为textbook,很是经典。另外,咱们也要阅读:《Operating System Concepts 

6th》,《The design of the UNIX Operating System》,《Inside Windows2000》,《The Unix Internals》和《Operating Systems:A Modern 

Perspective》等和一些论文。 

若是咱们在上个世纪九十年代初就能看到这样的好书,如今世界上就会多出个Chinux也说不定。呵呵,不过此书的确经典。 

有了minix的书和《understanding linux kernel》这本书不买也罢,不过有钱和有时间看看仍是值得。总比国内的什么汤的教材好多了。 

============================================ 

-------------------------------------------- 
数据库 

-------------------------------------------- 
数据库系统概论 


============================================ 


-------------------------------------------- 

程序设计 

-------------------------------------------- 

计算机程序的构造和解释(原书第2版) 

【原书名】 Structure and Interpretation of Computer Programs,Second Edition 
【原出版社】 Massachusetts Institute of Technology 
【做者】 (美)Harold Abelson,Gerald Jay Sussman,Julie Sussman 
【译者】 裘宗燕 
【丛书名】 计算机科学丛书 
【出版社】 机械工业出版社 

http://www.china-pub.com/computers/common/info.asp?id=17992 

【参考资料】 
相关网站有本书源代码及其余教辅资料,网址为:www-mitpress.mit.edu/sicp/ 

mitpress公开的在线浏览版本 
http://mitpress.mit.edu/sicp/full-text/book/book.html 

the homework answer 
http://inst.eecs.berkeley.edu/~cs61a/hw/index.html 
http://www-inst.eecs.berkeley.edu/~cs61a/sp06/ 

做者授课录像下载 
http://swiss.csail.mit.edu/classes/6.001/abelson-sussman-lectures/ 

UC Berkeley的教学录像(Spring 2004): 
http://webcast.berkeley.edu/courses/archive.html?prog=40&group=57 

最省事的scheme环境,初学推荐 
http://www.drscheme.org/ 

The Scheme Programming Language, 2nd Edition 
?; 1996 Prentice Hall 
http://www.scheme.com/tspl2d/ 

备查 
http://www.schemers.org/Documents/Standards/R5RS/ 

更多关于scheme 
http://www.schemers.org/ 
http://www.swiss.ai.mit.edu/projects/scheme/index.html 
http://readscheme.org/ 
http://dmoz.org/Computers/Programming/Languages/Functional/ 
http://directory.google.com/Top/Computers/Programming/Languages/Functional/ 


http://lambda-the-ultimate.org/ 

http://www.ai.mit.edu/research/publications/publications.shtml 

开放式课程计划OOPS 
http://www.cocw.net/ 

【评论】 
紫皮书(Purple Book)!巫师书!!SICP!!!TheBook!!!! 
四个名字都是这本书的昵称,“紫皮书”是由于书皮是紫的,“巫师书”是由于书皮上印着一男一女两个巫师模样的人,“SICP”就是书名几个单词的首字母,“ 

TheBook”是由于这本书是在scheme领域内公认的圣经,因此有此昵称 

绝对是好书, 很是具备启发性. 
把编译器、算法、硬件的的内容用Lisp语言联系起来。 


次书是我学习CS的第一本教材(MIT的6.001),很是好。 

Its the Best! Its the Worst! Why the split?, May 8, 2000 
Reviewer: Peter Norvig (Palo Alto, CA USA) - See all my reviews 

I think its fascinating that there is such a split between those who love and hate this book. Most reviews give a bell-shaped 

curve of star ratings; this one has a peak at 1, a peak at 5, and very little in between. How could this be? I think it is 

because SICP is a very personal message that works only if the reader is a computer scientist (or willing to become one). So 

I agree that the book's odds of success are better if you read it after having some experience. 
To use an analogy, if SICP were about automobiles, it would be for the person who wants to know how cars work, how they are 

built, and how one might design fuel-efficient, safe, reliable vehicles for the 21st century. The people who hate SICP are 

the ones who just want to know how to drive their car on the highway, just like everyone else. 
if you want to be a real professional, you should read this 

Donald Knuth says he wrote his books for "the one person in 50 who has this strange way of thinking that makes a programmer". 

I think the most amazing thing about SICP is that there are so FEW people who hate it: if Knuth were right, then only 1 out 

of 50 people would be giving this 5 stars, instead of about 25 out of 50. Now, a big part of the explanation is that the 

audience is self-selected, and is not a representative sample. But I think part of it is because Sussman and Abelson have 

succeeded grandly in communicating "this strange way of thinking" to (some but not all) people who otherwise would never get 

there. 

Those who hate SICP think it doesn't deliver enough tips and tricks for the amount of time it takes to read. But if you're 

like me, you're not looking for one more trick, rather you're looking for a way of synthesizing what you already know, and 

building a rich framework onto which you can add new learning over a career. That's what SICP has done for me. I read a draft 

version of the book around 1982 and it changed the way I think about my profession. If you're a thoughtful computer scientist 

(or want to be one), it will change your life too. 

Some of the reviewers complain that SICP doesn't teach the basics of OO design, and so on. In a sense they are right. The 

book doesn't directly tell you how to design and write an object-oriented program using the subset of object-oriented 

principles that show up in the syntax of Java or C++. Rather, the book tells you what those principles are, how they came to 

be selected as worthwhile, how they can be implemented from the ground up, and how a different combination of principles 

might be more appropriate for a particular problem. This approach requires you to understand the range of possibilities, and 

to think about trade-offs as you go through the design process. Programming is a craft that is subject to frequent failure: 

many projects are started and abandoned because the designers do not have the flexibility, experience and understanding to 

come up with a suitable design and implementation. SICP gives you an approach that will succeed, but it is an approach based 

on principles and wisdom, not on a checklist. If you don't understand the principles, or if you are the kind of person who 

wants to be given a cookbook of what to do rather than to think creatively, or if you only want to work on problems that are 

pretty much like the problem you worked on last time, then this approach will not work for you. There are other approaches 

that will be more reproducible for a limited range of simple problems, but there is no better way than SICP to learn how to 

address the truly hard problems. 

The Classic, May 20, 2000 
Reviewer: paul graham (Cambridge, MA United States) - See all my reviews 
This is one of the great classics of computer science. I bought my first copy 15 years ago, and I still don't feel I have 

learned everything the book has to teach. 
I have learned enough to write a couple books on Lisp that (currently) have four to five stars. Yet SICP, which is pretty 

much the bible of our world, has only three? How can this be? 

Reading the reviews made it clear what happened. An optimistic professor somewhere has been feeding SICP to undergrads who 

are not ready for it. But it is encouraging to see how many thoughtful people have come forward to defend the book. 

Let's see if we can put this in terms that the undergrads will understand -- a problem set: 

1. Kenneth Clark said that if a lot of smart people have liked something that you don't, you should try and figure out what 

they saw in it. List 10 qualities that SICP's defenders have claimed for it. 

2. How is the intention of SICP different from that of Knuth? Kernighan & Ritchie? An algorithms textbook? 

3. Does any other book fulfill this purpose better? 

4. What other programming books first published in the mid 1980s are still relevant today? 

5. Could the concepts in this book have been presented any better in a language other than Scheme? 

6. Who is al? Why is his name in lowercase? 

读书时曾经读过William R. Cook的文章《Object-oriented programming versus abstract data types》,当时对文章中的观点有些疑惑,当我读到 

2.4抽象数据的多重表示时,顿时豁然开朗,做者谈及数据导向的程序设计和可加性时给出的图2-22复数系统的操做表与William R. Cook文中的观点很是接近。 

确实是好书。好书慢慢读,如品茶、品酒,耐人寻味。 

若是想对书中所用的Scheme语言作进一步了解的话,能够在 http://www.drscheme.org/ 下载DrScheme解释/编译器。Scheme语言虽然另类及实际用途有 

限,但却有较高的“可玩性”,主要表如今它对几类编程语言范例(paradigm) -- 过程型/面向对象型/函数型/逻辑型 -- 都能作出良好表达。 

提及Comp.Sci.的读物,其实除了TAOCP、CLR外还有一本经典叫做 SICP (Structure and Interpretation of Computer Programs,俗称“紫皮书”或“巫 

师书”)。MIT和UCBerkeley两大学府都指定这本书做为计算机科目的入门教材。它涉及的不是具体的数据结构和算法,而是对“计算机程序”这个概念自己的解构 

/解读。“程序即思惟表达”是此书传递的一个意念。因为涉及的是程序设计的抽象层面,批评者会认为这本书不够实用(这在amazon.com上读者书评中的分歧可 

见一斑),但事实上不少顶尖的程序设计师都认为正是这本书帮他们“开了窍”,是一本具备高度启发性的经典。 

我很喜欢SICP,可是要说推荐给出版社我却很犹豫。缘由是虽然这本书追问编程的本质,对有科学探索气质的人颇有吸引力,可是对于大部分忙碌的程序员来讲, 

恐怕以为没有时间慢慢体会它的好处。这本书用LISP的变体SCHEME语言讲事,国内对于主流语言趋之若骛的大多数人恐怕不买账。 
对于曲高和寡的著做,出版社引进就会蚀本。好在有在线版本,喜欢的人自能够免费阅读。 

============================================ 

程序设计语言--实践之路(图书馆必藏经典,程序员必修秘笈,全球上百所大学列为标准教材和首选参考书) 

【原书名】 Programming Language Pragmatics 
【原出版社】 Morgan Kaufmann 
【做者】 Michael L.Scott 
【译者】 裘宗燕 
【出版社】 电子工业出版社 

http://www.china-pub.com/computers/common/info.asp?id=22979 

【参考资料】 
做者主页: 
http://www.cs.rochester.edu/u/scott/ 
http://www.cs.rochester.edu/u/scott/pragmatics/adopters.html 

On-line Resources: 
http://www.cs.rochester.edu/u/scott/pragmatics/ 

原书图片资源下载: 
http://www.cs.rochester.edu/u/scott/pragmatics/figures/ 

勘误表: 
http://www.is.pku.edu.cn/~qzy/books/pragmatics/errata.htm 

【评论】 

创新性地将程序设计语言的设计与实现和编译器设计有机结合的实用教本。国外大受好评的程序设计语言教本,被全球上百所大学、学院列为标准教材和首席参考 

书目 !这是一本颇有特点的计算机程序设计方面的教材,它的核心是讨论程序设计语言如何工做的问题,它是程序设计语言和编译的传统教科书的混合,再加上一 

些有关汇编层体系结构的材料,或以知足那些没有学过计算机组织的学生和须要。它不是综述性语言的教科书,没有列举不一样语言的细节,而集中经过各类语言的 

例子阐释其基础概念。本书也没有解释如何构造一个编译器,只是解释编译器如何工做,它对源程序作了什么,以及为何要那样作。 本书在美国使用已有十余年 

,用于讲授一门名为“软件系统”的课程,适合高年级的本科生和一年级的研究生使用,书的内容对专业程序员也颇有价值。 

------------------------ 
王咏刚《接受程序设计语言的再教育》 
http://www.china-pub.com/computers/ebook20001-25000/22979/wz1.doc 
再教育?没错。依我的愚见,大多数中国程序员都须要接受一次有关程序设计语言的再教育,而Michael L.Scott所著的《程序设计语言??实践之路》则能够成 

为此次再教育中的最好读本之一。 
  对于那些没时间重温大学课程的上班族来讲,这种补习最好从《程序设计语言??实践之路》开始。即使不能把这本八九百页的“大部头”所有读完,你也至少能 

在阅读过程当中明白三个看似浅显、实则微妙的“大道理”: 
  其一,语言必须与环境相结合,才能发挥出最大的功用。这里所说的“环境”一般包括编译环境、运行环境和应用环境三个方面。举例来讲,若是你打算仿照着 

某些开源框架的作法,使用控制反转和依赖注入技术消除代码中某些让人生厌的依赖关系,你必定会认真研习实现相似技术的语法特征,但你未必会主动思考如下 

几个问题:在编译层面,使用了这些语法特征的代码是否会影响到最终生成的目标代码质量?在运行层面,该如何组织这些语法特征,才能让使用了相关技术的可 

执行程序在支持废料收集的并发环境下有不俗的表现?在应用层面,这些旨在消除依赖关系的技术会不会破坏新、旧模块间的平衡关系,以致于咱们必须花上大量 

时间改写原有的代码或接口才能保证系统的平滑升级?全面思考这些与环境相关的问题并不必定会改变你的抉择,但它却能够帮助你找到效率、可靠性和可用性之 

间的最佳平衡点。在此方面,《程序设计语言??实践之路》一书所使用的,将程序设计语言与编译原理、面向对象等知识综合起来、融会贯通的作法不但能够节省 

咱们分类学习的大量时间,还能够训练咱们从总体出发、多角度思惟的方式与方法,其价值不言而喻。 
  其二,程序设计语言自己所具备的多样性能够成为咱们提升软件开发水平的最佳指南。说到这里,我又想起了那些充斥在各大技术网站的,题为“某某语言比某 

某语言更强大”或“某某语言已死,某某语言必胜”的帖子。发表这些帖子的帖主也许并不懂得,程序设计语言的世界原本就是一个多样化的、五彩缤纷的世界,每 

一种成功进入应用、教学或科研领域的程序设计语言都有它值得学习和借鉴的地方。若是仅仅根据我的的喜爱或是响应时尚的号召,就盲目地吹捧某一种语言并贬 

低其余全部语言,这样的帖子和那些频繁出如今Fans网站上的“爱死某某某,恨死某某某”的帖子有什么本质的不一样?更为重要的是,若是咱们可以在《程序设计语 

言??实践之路》的指下,真正懂得了函数式语言、数据流语言、逻辑式语言、冯?诺伊曼语言、面向对象语言等不一样的语言类型在语法设计、编译器设计和运行环 

境设计方面的异同,咱们就会惊讶地发现:Scheme语言的lambda表达式能够在C 语言中优雅、高效地解决诸如面向契约设计之类的复杂问题;Ada95语言中提供 

的同步和保护机制能够为那些使用Java编写的多线程应用提供重要的参考;Smalltalk语言与编译和运行环境的紧密结合则能够为咱们设计可扩展的# 

宿主提供最好的借鉴……从这个意义上说,学习一种语言的意义毫不在于为本身增添一种求职和谋生的手段??真正善于学习的人总能从每种语言的设计和实现中找到 

许多可用于提升编程水平的关键特征。 
  其三,使用特定语言编写出来的代码是否优雅、可靠,这主要取决于程序员对各类基本理念和基本原则的认知程度,而不取决于程序员记住了多少复杂的语法 

特征或学会了多少流行类库的用法。正如《程序设计语言??实践之路》所说的那样,“典型的C 程序员都极少使用联合、多重继承、变更个数的参数,或者. 运算 

符”,可是,若是你了解了隐藏在这些复杂语法特征背后的东西??如内存空间的分配和寻址方式,复本式继承和共享式继承之间的关系,参数传递和求值顺序,动 

态方法约束和成员查找,等等??你就能够在须要使用这些语法特征的时候满怀信心地告诉本身:“嘿,这不过是某某原则或某某技术在C 语言中的表现形式罢了, 

我能搞定它!”反之,若是你不晓得与数据结构和算法相关的代码在编译、运行时必然存在的各类均衡与折中问题,即使你把C 语言的标准文档背得倒背如流,即 

便你能够默写出System.Collections命名空间中的全部属性和方法,你也会在体验过本身开发的软件与成熟软件之间的差异后大发感慨:“一样是使用C 语言, 

为何我写的程序总会从头到脚散发着‘业余’的气味儿呢?” 
  关于程序设计语言的本质,Michael L.Scott是这样说的:“就像天然语言限制着人们解释和论述的方式同样,程序设计语言也限定了什么能够表达,什么不 

能表达,并对程序员可以怎样思考问题有着深入而微妙的影响。”既然如此,咱们还犹豫什么呢?与其后悔在学校中虚度了光阴,还不如立刻捧起《程序设计语言? 

?实践之路》这本书,接受一次有关程序设计语言的再教育呢! 

Yupo: 
这本书的做用有限,并非全部编程的人都必须看的书。对于非计算机专业的人而言,彻底能够不看此书。对于通常的计算机应用程序(指比较高层的应用)的开 

发者而言,只须要知道如何使用程序设计语言编程就足够了。此书评的做者用不做为了抬高此书而这样来贬低他们。这样贬低他们只能说明本身的无知。程序设计 

语言只不过是一种工具,就像天然语言是用来交流的工具同样。应用程序的编写者有本身的专业,他须要的只是如何使用编程语言来实现本身的设计,而不须要去 

深究语言的实现机制。好比说,用Fortran语言编写科学计算程序的人,并不须要知道语法分析、代码生成等编译过程,同样能很好地实现本身的设计。这些东西 

对他们而言是额外的知识,而不是必须的知识。 
本书评做者经过贬低不懂编译实现机制或底层实现机制的人来抬高此书实在没有必要。若是真有谁曾“试用了28种开源框架和69种eclipse插件”,我想他必定不是 

等闲之辈,也必定不会“仍不清楚本身眼前的垃圾代码该如何“重构””。在工做中或研究中能作到这样的人,必定是一个认真的人,他确定不会须要进行这么多尝试 

便早以解决好了本身的问题。反过来,我也没有看到“28种开源框架和69种eclipse插件”与学习本书之间有什么必然的联系。也不懂“本身眼前的垃圾代码该如何“ 

重构””这句话的含义。既然是“垃圾代码”还要“重构”干什么,这里的“重构”又是什么?莫名其妙。 
编写应用程序的人在写程序时是没法本身决定如何使“语言与环境相结合”的,这不是程序设计者的任务,而是编译器的实现者的任务。书评者对着假想的一群应用 

程序设计者,给他们规定绝不相干的任务,而后极力推荐他们看此书,搞错了对象。真有点可笑。 
要写书评也要写在点子上。不要在本身还未懂得书中的内容时(我相信他根本就没有好好看过此书),就盲目地炒做。 

《程序设计语言??实践之路》一书讲述的核心内容是程序设计语言的“语用学”,它的重点既不是语言,也不是编译。这里所谓的“语用”是指编程语言变成能够在计 

算机上真正运行的程序所须要的环境、它的实现机制以及原理。与天然语言中的语用学讨论的问题是相似的,只不过涉及的“世界”不一样。可是,因为将源程序变成 

可执行程序须要由编译器来实现,所以其中的不少问题都与编译器有关。可是,它关心的不是特定的编译算法和编译器的实现方法,而是程序设计语言与底层计算 

机体系结构的对应关系。例如,程序设计语言中的做用域和存储绑定、数据类型、过程调用、控制流等概念在计算机中是用什么方法来表示的?如用栈表示局部做 

用域,用堆来实现动态申请的空间。为此,编译器要适当组织符号表正确地实现这种从概念到实例之间的映射。又如与函数调用相关的概念是若是实现的?例如, 

形式参数如何与实在参数相结合?如何实现从一个函数的内部访问在该函数以外声明的变量?如何实现导入、导出的访问?等等。为了在计算机上正确实现这些概 

念,编译器必须遵循特定机器的有关调用约定,如寄存器使用约定、参数传递约定,栈帧的布局约定,等等。这些问题均可以抛开编译器而单纯从实现机制上来讨 

论。事实上,它们都是编译器的设计者在实现一个编译器以前,必须在头脑中事先便明白的知识。学习这本书,对于深入理解程序设计语言的行为实质是颇有帮助 

的。不论你专一于计算机的哪一个方面,网络、应用仍是底层的系统软件,这本书都会对你有好处。对于有兴趣研究编译器的人而言,则更是必备的知识。 
本书并不深奥,讲的都是基本的东西,学起来应当不难。 
另外要补充一点的是,我认为书名译得不是太好,这个名字没有突出“语用学”,而事实上“语用学”是本书的重点。其实就翻译成《程序设计语言语用学》就能够 

,不要搞华而不实的标题,并且尚未点中要点。更为不当的是封面设计,将“程序设计语言”用了那么大的字体,搞不清楚的还觉得是专门讲程序设计语言的书。 


----------------------- 

其实本书很大程度上就是 编译原理 的教材;而我学过编译原理,用的是 龙书 ,而且实现了一个小型的编译器;书不错,但对编译原理学的很好的读者并不适合,重 

复了,深度上不如 龙书. 

书的价值之所在:创新性地将语言设计与编译原理两门课程的内容融合在一块儿,将两门在传统上分割开来的学科融会贯通,完全打破咱们在学习中产生的不连贯性 

。 

国外教改,国内现状:美国ACM和IEEE/CS最新制定的《Computing Curricula 2001》课程体系,反映当代计算机科学与技术学科发展水平和计算机科学技术的 

新进展、新技术。编译器的编写曾是计算机学科中的核心课程, 但如今愈来愈多的人认为并不是每个计算机专业的学生都须要具有设计编译器的能力, 这项工做应 

属于编译器的设计专家. 去除了这项课程后, 能够在课程表中填充以下内容, 如软件工程、 数据库工程或其余一些关于计算机科学技术实际应用的课程。但, 

cc2001中也明确指出,学校有必要开设一门关于程序设计语言原理的课,主要讲授各类常见语言的设计。本书就是这样一本讲编译原理嵌入到程序设计语言的各类 

设计方案的佳做。她的每一章讲授一种设计方案,同时结合一种典型语言。另外她加入了计算机底层的东东,确实不错。国内不少院校都取消了编译原理课,取而 

代之的是程序设计语言概论。 

常常看书买书的,都知道裘老师的翻译质量是没的挑,博文的出版编辑也是十分负责。本书保留了索引,这对于书迷的重要性我就很少说了。 

真心但愿以本书为契机,多多引进国外的优秀教材,把先进的设计理念带入国内。同时也但愿咱们能有本身的精品图书品牌,多出版优秀国内原创,提升国内教学 

和技术水平。 

这本书中的内容能够说覆盖面很广,可是却很浮浅,有些甚至是聊聊数语带过。对于语言机制、哲学、分类、数学基础的介绍也不深入。充其量也就是一本语言分 

类学的概观和浅显介绍。所谓馆藏精品以及接受再教育实在是言过其实了。 
这本书就是一本典型的程序设计语言概论性的书,其中虽然涉及了一些编译方面的知识,但只是从程序设计语言的角度来较为深刻地探讨其实现,与编译原理不是 

一个概念。 

这是一本知识浓缩度至关高的教材,它所覆盖的知识面至关的普遍,它能够做为自动机原理、汇编语言、编译原理、数据结构、计算机组成原理等计算机专业课程 

程的参考书,也能够为电子信息工程、通讯工程和信息技术等专业的学生提供帮助。本书并无具体的讲解某种程序设计语言,但其讲述的通常原理,是任何一种 

程序设计语言都必不可少的。本书从计算机的硬件、设计、原理和实现上都作了详细的阐述,是一本可贵的综合教材。因为本书综合的内容比较多,在具体的某些 

方面讲得不是很细,可是对于做为教材来说,确实是一本经典之做。特别适合研一的学生来阅读。 

程序涉及语言的书,这几年各出版社出了一批: 
Ravi Sethi 的《程序设计语言:概念和结构》; 
Robert W. Sebesta的《程序设计语言原理》; 
Kenneth C. Louden的《程序设计语言??原理与实践》; 
Terrence W.Pratt和Marvin V.Zelkowitz的《程序设计语言:设计与实现》。 
这些书的做者从各个角度介绍程序设计语言,相信你们看了后定会大有收获。这些书中的有些已有2、三十年的历史,出了5、六版,及时反映程序设计语言。这 

些书没有哪本标榜“图书馆必藏经典,程序员必修秘笈,全球上百所大学列为标准教材和首选参考书”。特别是提到“程序员必修秘笈”,好像让人获得武功秘籍同样 

,令人反感。这世界没有万灵药,没有哪本书标榜本身怎样怎样的,只不过是一本书而已。不一样的做者有不一样的观点,不一样的书有不一样的写法,各取所需。 
遗憾的是,你们查不到高教去年出的John C.Mitchell的《程序设计语言概念(影印版)》,你们若是看了该书后自会有另一种感觉。做者的网站为 

http://theory.stanford.edu/people/jcm/。 

这本书创新性地将语言设计与编译器原理融合在一块儿,让学习者能够更清楚地明白二者之间的关联,是可贵的优秀教本。推荐有兴趣深刻学习程序设计语言的人士 

研究一下。 

本书号称创新性的将程序语言设计与编译器的设计有机结合. 
可是,我以为此书中关于[编译器的设计]仅仅是些编译原理的基础知识,并且还不够详细,[程序语言的设计]更是泛泛而谈.诸如[深刻理解计算机系统]对这种大而 

空洞的主题都有所阐述;[C++的设计与演化]才是探讨某专门语言设计的典范. 
译者和著者都不错,书的内容也很规矩;但说是经典就有些勉强 

其中牛校少了点,像MIT、Stanford、UCBerkeley、CMU、UIUC等一等一的都没有。不过这个做者的确是本领域的大拿。 

这本书结合编译系统,很好的探讨了设计程序设计语言中须要考虑到的不少问题。是一本不错的书。 

这本主要仍是集中在语言方面。你说的《深刻计算机系统》其实与博文视点要出版的另一本 Write Great Code Vol.1(The Art Of Assembly Language 

做者最新系列杰做) 有必定的类似性。:-) 

每章最后都有一些复习题和一些更具挑战性的练习。这些练习的特别价值在于引导学生理解各类语言或者技术,其中许多都是他们不大会在其余地方遇到的,或者 

不会很快遇到的。我建议程序设计做业用C++或者Java;Scheme、ML或者Haskell;以及Prolog。布置一个有关异常处理的题目也是很是好的想法,它能够用 

Ada、C++、Java、ML或者Modula-3写。若是课程里包含了并行性,做业应该在SR、Java、Ada或者Modula-3里给,能够根据本地的条件选择。在附录A里给出 

了各类语言实现的资源信息。 
  除了这种小型课题以外(或者在那些但愿的地方),教师还可能但愿学生作一些语言实现方面的工做。因为从空白开始作一个小编译器也是一个学期的工做, 

Rochester采用的方式是给学生提供能工做的编译器的代码,要求他们作些修改。对于其中的许多人,这是他们第一次阅读、理解和修改一个大的实在的程序??就 

其自己而言也是很是有价值的练习。Rochester的PL/0编译器把一个归功于Wirth[Wir76,307-347页] 的小语言翻译到MIPS I汇编语言,这一汇编语言被普遍 

认为是商品的RISC指令集中“最友好的”。威斯康星大学计算机系提供了一个很是好的MIPS解释器(“SPIM”,www.cs.wisc.edu/~larus.spim.html)。编译器 

自己能够从Rochester获得(ftp://ftp.cs.rochester.edu/pub/packages/plzero/)。它是用C++写的,仔细划分了各个编译阶段,并有很详尽的文档。 
-------------------------------------------- 

计算机体系结构 

-------------------------------------------- 

深刻理解计算机系统(修订版) 

【原书名】 Computer Systems A Programmer's Perspective 
【原出版社】 Pearson 
【做者】 (美)Randal E.Bryant; David O'Hallaron 
【译者】 龚奕利 雷迎春 
【丛书名】 国外经典计算机科学教材系列 
【出版社】 中国电力出版社 
http://www.china-pub.com/computers/common/info.asp?id=18133 
http://www.china-pub.com/computers/common/info.asp?id=18384 [英文版] 

【参考资料】 
Web网站:实验和做业,授课笔记和代码示例 
csapp.cs.cmu.edu 

Manuscript 
http://csapp.cs.cmu.edu/public/manuscript.html 

本书2003年版的勘误 
http://csapp.cs.cmu.edu/public/errata.html 

中文版勘误: 
http://vega.ict.ac.cn/personal/lyc/CSAPP_errata.htm 
leiyc@ict.ac.cn 

本书相关资料 
http://csapp.cs.cmu.edu/ 
有一些内php

相关文章
相关标签/搜索