計算機經典書籍【轉】

【動機】就計算機這個專業來講吧,由於我是非科班出身的學生,要從新開始補相應的知識,目前定下來要學習的基礎理論知識有:離散數學,數據結構與算法, 

組成原理,彙編,操做系統,網絡等等,有的時候以爲這裏每個知識點要學的深刻的話都是無底洞,不過我又是那種喜歡追根究底的人,好比學習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

相關文章
相關標籤/搜索