西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
西西首頁 電腦軟件 安卓軟件 電腦游戲 安卓游戲 排行榜 專題合集

計算機(jī)程序的解釋與構(gòu)造

中文版PDF
  • 計算機(jī)程序的解釋與構(gòu)造中文版PDF
  • 軟件大小:24.3M
  • 更新時間:2012-12-07 13:52
  • 軟件語言:中文
  • 軟件廠商:
  • 軟件類別:國產(chǎn)軟件 / 免費軟件 / 電子教程
  • 軟件等級:4級
  • 應(yīng)用平臺:WinAll, WinXP
  • 官方網(wǎng)站:http://m.elephantinaurance.com
  • 應(yīng)用備案:
好評:50%
壞評:50%

軟件介紹

Structure and Interpretation of Computer Programs,簡稱: SICP,非常著名的一本書(中譯本叫《計算機(jī)程序的解釋與構(gòu)造》,由裘宗燕老師翻譯的),Scheme 的鼻祖 Gerald Jay Sussman 和計算機(jī)教育專家 Hal Abelson 合寫的,20 年來影響整個計算機(jī)科學(xué)教育的著作,著名的 MIT 課程 6.001(計算機(jī)科學(xué)專業(yè)的入門課程) 的教材,全世界有超過100所大學(xué)在使用這本書做為教材。

本書曾經(jīng)是MIT本科第一門課的教材。前兩年被Python取代,在geek中引發(fā)了軒然大波。有興趣可以Google一下[sicp mit python]。
  - 本書在Amazon上的評分嚴(yán)重兩極分化,五星(>90)和一星(>50)為主,徹底反正態(tài)分布。
  - 本書在Amazon上排名最高的書評出自Peter Norvig,當(dāng)然是強(qiáng)烈推薦,順便狠狠地鄙視了給一顆星的同學(xué)們;第二篇出自Paul Graham,還是強(qiáng)烈推薦。
  - 本書別名紫書(The Purple Book),巫師書(The Wizard Book),或者干脆The Book。
  
  「這是一本什么樣的書?」
  前言說,這是一本給MIT學(xué)生的入門級(entry-level)計算機(jī)科學(xué)教材。作者的出發(fā)點有兩條:
  - 語言首先是寫給人看的,只是恰巧(incidentally)能夠運行。這當(dāng)然是個修辭,格外強(qiáng)調(diào)代碼之可讀。
  - 語言的語法,漂亮的算法,數(shù)學(xué)的分析,這些統(tǒng)統(tǒng)都不重要。最打緊的是如何控制復(fù)雜度(The techniques used to control the intellectual complexity of large software systems)。
  在本書成書的年代(1984),以上言論即使不算正邪不兩立,也夠的上離經(jīng)叛道了。
  
  通俗的說,這本書教你如何用最基本的構(gòu)造和原則,解決復(fù)雜和多樣的問題。用攝影打比方,這本書不比較尼康和佳能,不介紹繁雜的機(jī)型和參數(shù),不介紹后期處理的技巧。這本書只討論光線、色彩和構(gòu)圖,以及如何在不同場景拿捏這些基本原則組合出美妙的照片。
  
  「這本書適合初學(xué)者嗎?」
  不好說。Amazon上的一顆星評價大多鄙視本書已經(jīng)過時或者太過高深。我個人看法,它很適合一部分初學(xué)者,但是需要滿足幾個條件:
  - 熱愛計算機(jī)科學(xué)
  - 有時間和耐心
  - 受過(高中水平)數(shù)學(xué)和抽象思維的訓(xùn)練
  所以,如果只是想領(lǐng)一份程序員的薪水,這本書完全可以略過。并不是說這本書有多么不實用,只是計算機(jī)科學(xué)與寫代碼并不是一碼事。
  
  這本書廣而不深,討論到了非常多重要的思想,有些甚至冷不丁出現(xiàn)在注釋里(比如Y算子)。內(nèi)容安排很照顧初學(xué)者,循循善誘;語言直白簡單;代碼大多簡明自然。
  
  至于習(xí)題,個人認(rèn)為大多不難,需要耐心多于智力。有時間不妨多做幾道。
  
  「這本書適合有經(jīng)驗的程序員嗎?」
  
  還行。如此庖丁解牛般的講解,其他書中不多見;內(nèi)容簡單,思想?yún)s不過時。另外,國內(nèi)絕大部分程序員都從命令式語言入門,不妨接觸一些函數(shù)式思想,開開眼界。如果時間不多,至少看看前兩章,學(xué)習(xí)一些解決復(fù)雜問題和編寫優(yōu)雅代碼的技巧。
  
  「Scheme好學(xué)嗎?」
  
  其實Scheme是一門異常簡單的語言。直來直去,除了括號多,基本沒有旁門左道(比如指針)和撕心裂肺的語言構(gòu)造(比如模版、多重繼承、Monad)。再者,這本書的內(nèi)容和具體的語言基本沒有關(guān)系,思想才是重頭戲。如果實在有顧慮,推薦先讀兩本薄薄的小冊子:The Little Schemer和The Seasoned Schemer。
  
  「這本書到底講什么?」
  
  第一章討論程序設(shè)計的最基本原則:原語(primitive expressions)、組合(means of composition)和抽象(means of abstraction),以及如何利用這些基本原則化解復(fù)雜度。重點是過程抽象和高階過程(high-order procedures)。本章的例題十分精彩,抽象和組合的過程十分清晰。有關(guān)遞歸和迭代的討論也非常耐讀。
  
  第二章討論數(shù)據(jù)抽象,即利用基本數(shù)據(jù)構(gòu)造復(fù)雜結(jié)構(gòu)。Scheme里的基本構(gòu)造能力只有cons,但由此可以組合出所有實用的結(jié)構(gòu)。圖像語言、符號運算、集合表示、哈夫曼編碼和復(fù)數(shù)系統(tǒng)都是經(jīng)典實用的例子。順帶還介紹了data-directed方法,與面向?qū)ο笾械姆庋b有異曲同工之妙。
  
  即使沒有太多時間,我覺得前兩章也值得值得細(xì)讀。尤其是例子。
  
  第三章主要討論了狀態(tài)(local state)和環(huán)境(environment model),可變數(shù)據(jù)結(jié)構(gòu)(mutable data),以及狀態(tài)和時間的交互(concurrency和laziness)。前兩章用到語言是Scheme的一個沒有副作用的子集,從這一章開始涉及解釋器的核心機(jī)制,尤其是狀態(tài)的管理,及其優(yōu)缺點。
  
  第四章用Scheme實現(xiàn)了一個簡單的Scheme解釋器。重點是討論語言的解釋過程,以及如何針對問題(領(lǐng)域)創(chuàng)造和修改語言,從中可見DSL(Domain Specific Language)的思想。后三節(jié)各自討論一個工程中不常見但高效解決特定問題的語言變種及其實現(xiàn)。
  
  第五章介紹將Scheme編譯為現(xiàn)實中的寄存器機(jī)器模型(register machine)。重點不是編譯技巧(Scheme壓根不需要文法分析),而是基本構(gòu)造(條件、過程,等等)對應(yīng)于寄存器模型的實現(xiàn)。略帶討論了最簡單的垃圾回收。
  
  后三章較深,最好略有一點語言、編譯和體系結(jié)構(gòu)的基礎(chǔ),或者多些耐心。

軟件標(biāo)簽: 計算機(jī)程序
涵蓋面很廣。從數(shù)據(jù)抽象、過程抽象、迭代、高階函數(shù)等編程和控制系統(tǒng)復(fù)雜性的思想,到數(shù)據(jù)結(jié)構(gòu)和算法,到編譯器/解釋器、編程語言設(shè)計。MIT這門課的課程講義(在MIT OCW里可找到)里還增加了面向?qū)ο缶幊痰膬?nèi)容。雖然很多內(nèi)容涉及并不深入,但是這是MIT EECS(電子工程與計算機(jī)科學(xué)系)的第一門專業(yè)基礎(chǔ)課(6.001),也就是說MIT計算機(jī)專業(yè)的學(xué)生在進(jìn)入大學(xué)之后,在這門課之前沒有上過其它編程、軟件、計算機(jī)方面的課程。從這個角度看,起點是非常高的。其它大學(xué)的學(xué)生在倒騰C語言的時候,MIT的學(xué)生在思考設(shè)計語言和系統(tǒng)。

其他版本下載

發(fā)表評論

昵稱:
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
查看所有(0)條評論 > 字?jǐn)?shù): 0/500

TOP
軟件下載