編程珠璣II

出版時間:2008 年10月  出版社:人民郵電出版社  作者:(美)Jon Bentley  頁數(shù):186  字數(shù):289000  譯者:錢麗艷;劉田  
Tag標簽:無  

前言

  本書作者Jon Bentley是美國著名的程序員和計算機科學家,他于20世紀70年代前后在很有影響力的《ACM通訊》(Communications of the ACM)上以專欄的形式連續(xù)發(fā)表了一系列短文,成功地總結(jié)和提煉了自己在長期的計算機程序設計實踐中積累下來的寶貴經(jīng)驗。這些短文充滿了真知灼見,而且文筆生動、可讀性強,對于提高職業(yè)程序員的專業(yè)技能很有幫助,因此該專欄大受讀者歡迎,成為當時該學術期刊的王牌欄目之一??梢韵胂螽敃r的情形頗似早年金庸先生在《明報》上連載其武俠小說的盛況。后來在ACM的鼓勵下,作者經(jīng)過仔細修訂和補充整理,對各篇文章的先后次序做了精心編排,分別在1986年和1988年結(jié)集出版了Programming Pearls(《編程珠璣》)和More Programming Pearls(《編程珠璣Ⅱ》)這兩本書,二者均成為該領域的名著。《編程珠璣(第2版)》在2000年問世,書中的例子都改用C語言書寫,并多處提到如何用C++和Java中的類來實現(xiàn)。《編程珠璣Ⅱ》雖未再版,例子多以Awk語言寫成,但其語法與C相近,容易看懂。  作者博覽群書,旁征博引,無論是計算機科學的專業(yè)名著,如《計算機程序設計藝術》,還是普通的科普名著,如《啊哈!靈機一動》,都在作者筆下信手拈來、娓娓道出,更不用說隨處可見的作者自己的真知灼見了。如果說《計算機程序設計藝術》這樣的巨著代表了程序員們使用的“坦克和大炮”一類的重型武器,這兩本書則在某種程度上類似于魯迅先生所說的“匕首與投槍”一類的輕型武器,更能滿足職業(yè)程序員的日常需要。或者說前者是武俠小說中提高內(nèi)力修為的根本秘籍,后者是點撥臨陣招數(shù)的速成寶典,二者同樣都是克敵制勝的法寶,缺一不可。在無止境地追求精湛技藝這一點上,程序員、數(shù)學家和武俠們其實是相通的?! ≡诿绹?,這兩本書不僅被用作大學低年級數(shù)據(jù)結(jié)構(gòu)與算法課程的教材,還用作高年級算法課程的輔助教材。例如,美國著名大學麻省理工學院的電氣工程與計算機科學開放式核心課程算法導論就將這兩本書列為推薦讀物。這兩本書覆蓋了大學算法課程和數(shù)據(jù)結(jié)構(gòu)課程的大部分內(nèi)容,但是與普通教材的側(cè)重點又不一樣,不強調(diào)單純從數(shù)學上來進行分析的技巧,而是強調(diào)結(jié)合實際問題來進行分析、應用和實現(xiàn)的技巧,因此可作為大學計算機專業(yè)的算法、數(shù)據(jù)結(jié)構(gòu)、軟件工程等課程的教師參考用書和優(yōu)秀課外讀物。書中有許多真實的歷史案例和許多極好的練習題以及部分練習題的提示與解答,非常適合自學。正如作者所建議的那樣,閱讀這兩本書時,讀者需要備有紙和筆,最好還有一臺計算機在手邊,邊讀邊想、邊想邊做,這樣才能將閱讀這兩本書的收益最大化。

內(nèi)容概要

本書是計算機科學方面的經(jīng)典名著《編程珠璣》的姊妹篇,講述了對于程序員有共性的知識。書中涵蓋了程序員操縱程序的技術、程序員取舍的技巧、輸入和輸出設計以及算法示例,這些內(nèi)容結(jié)合成一個有機的整體,如一串串珠璣展示給程序員。本書適合各級程序員閱讀參考。

作者簡介

 Jon Bentley,世界著名計算機科學家,被譽為影響算法發(fā)展的十位大師之一。他先后任職于卡內(nèi)基—梅隆大學(P976-1982)、貝爾實驗室(1982—2001)和Avaya實驗室(2001年至今)。在卡內(nèi)基—梅隆大學擔任教授期間,他培養(yǎng)了包括Tcl語言設計者John Ousterhout、Java語言設計

書籍目錄

第一部分  編程技術 第1章  性能監(jiān)視工具    1.1  計算素數(shù)    1.2  使用性能監(jiān)視工具    1.3  一個專用的性能監(jiān)視工具    1.4  開發(fā)性能監(jiān)視工具    1.5  原理    1.6  習題    1.7  深入閱讀   第2章  關聯(lián)數(shù)組   2.1  Awk中的關聯(lián)數(shù)組    2.2  有窮狀態(tài)機模擬器    2.3  拓撲排序    2.4  原理   2.5  習題    2.6  深入閱讀  第3章  程序員的懺悔   3.1  二分搜索  3.2  選擇算法  3.3  子程序庫  3.4  原理   3.5  習題 第4章  自描述數(shù)據(jù)  4.1  名字—值對  4.2  記錄來歷  4.3  排序?qū)嶒?  4.4  原理  4.5  習題第二部分  實用技巧 第5章  劈開戈爾迪之結(jié)   5.1  小測驗   5.2  解答  5.3  提示  5.4  原理  5.5  習題  5.6  深入閱讀    5.7  調(diào)試(邊欄)  第6章  計算機科學箴言集   6.1  編碼  6.2  用戶界面  6.3  調(diào)試  6.4  性能  6.5  文檔  6.6  軟件管理  6.7  其他  6.8  原理   6.9  習題  6.10  深入閱讀 第7章  粗略估算   7.1  頭腦熱身  7.2  性能的經(jīng)驗法則  7.3  Little定律   7.4  原理   7.5  習題  7.6  深入閱讀    7.7  日常速算(邊欄)   第8章  人員備忘錄    8.1  備忘錄    8.2  原理    8.3  深入閱讀  第三部分  人性化I/O 第9章  小語言    9.1  Pic語言    9.2  視角    9.3  Pic預處理器    9.4  用來實現(xiàn)Pic的小語言    9.5  原理    9.6  習題    9.7  深入閱讀   第10章  文檔設計    10.1  表格    10.2  三條設計原則    10.3  插圖    10.4  文本    10.5  合適的媒介    10.6  原理    10.7  習題    10.8  深入閱讀    10.9  次要問題目錄(邊欄)   第11章  圖形化輸出    11.1  實例研究    11.2  顯示結(jié)果取樣    11.3  原理    11.4  習題    11.5  深入閱讀    11.6  拿破侖遠征莫斯科(邊欄)   第12章  對調(diào)查的研究    12.1  有關民意調(diào)查的問題    12.2  語言    12.3  圖片    12.4  原理    12.5  習題  第四部分  算法 第13章  絕妙的取樣    13.1  取樣算法一瞥    13.2  Floyd算法    13.3  隨機排列    13.4  原理    13.5  習題    13.6  深入閱讀   第14章  編寫數(shù)值計算程序    14.1  問題    14.2  牛頓迭代    14.3  良好的起點    14.4  代碼    14.5  原理    14.6  習題    14.7  深入閱讀    14.8  數(shù)值算法的力量(邊欄)   第15章  選擇    15.1  問題    15.2  程序    15.3  運行時間分析    15.4  原理    15.5  習題    15.6  深入閱讀  附錄A  C和Awk語言  附錄B  一個子程序庫  部分習題答案  索引

章節(jié)摘錄

  第一部分 編程技術  第2章 關聯(lián)數(shù)組  人類學家說,語言深刻地影響了世界觀。一般把這個觀察結(jié)果稱為“Whorf假說”,也經(jīng)常把它總結(jié)為“語言塑造了人的思想”。  跟大多數(shù)程序員一樣,我使用的Algol系列的語言塑造了我的計算思維。對于像我這樣的程序員來說,PL/1、C和Pascal看起來都很相似,我們不難把這樣的代碼翻譯成COBOL或Fortran的代碼。用這些語言能輕易地表達我們舊的、習以為常的思維模式。  另外一些語言則挑戰(zhàn)了我們對于計算的看法。我們感到驚奇的是:Lisp用戶們用S表達式和遞歸來神奇地工作,APL迷們用一組長向量的外積來為世界建模,Snobol程序員把任何問題都變成一個很大的字符串。我們這些Algol系列的程序員可能會發(fā)現(xiàn),研究這些“異族文化”是痛苦的,但是這種體驗一般會增長我們的見識。  本章討論Algol傳統(tǒng)之外的一種語言特性:關聯(lián)數(shù)組(associative array)。我們熟悉的數(shù)組都用數(shù)值作下標,而關聯(lián)數(shù)組則允許像count[“car”]這樣的引用。這樣的數(shù)據(jù)結(jié)構(gòu)出現(xiàn)在Snobol和Rexx(一種IBM命令解釋器)這樣的語言中,它允許我們用簡單的程序宋表達復雜的算法。這些數(shù)組與Algol相似到可以很快被理解的程度,又新到足以挑戰(zhàn)我們思維習慣的程度?! ”菊聦⒂懻揂wk語言提供的關聯(lián)數(shù)組。雖然Awk的大多數(shù)成分都來生Algol傳統(tǒng),但是關聯(lián)數(shù)組和其他幾個特性還是值得研究的。下面這一節(jié)介紹Awk的關聯(lián)數(shù)組;后續(xù)幾節(jié)描述兩個重要的程序,這兩個程序用大多數(shù)Algol系列的語言來寫都是很麻煩的,卻可以用Awk優(yōu)雅地表達出來。

編輯推薦

  歷史上最偉大的計算機科學著作之一;融深邃思想、實戰(zhàn)技術與趣味軼事于一爐的奇書;帶你真正領略計算機科學之美。  “《編程珠璣》第1版是對我職業(yè)生涯早期影響最大的書之一,其中的許多真知灼見多年之后仍然使我受益匪淺。Jon在第2版中對素材進行了大量更新,許多新內(nèi)容讓我耳目一新。”  ——Steve McConnell,軟件工程大師,IEEE Software前主編?!洞a大全》作者“對每一位遇到的程序員,我都會毫不遲疑地建議他閱讀并不斷重讀這部經(jīng)典之作?!薄  猄lashdot  多年以來,當程序員們推選出最心愛的計算機圖書時,《編程珠璣》總是位于前列。正如自然界里珍珠出自細沙對牡蠣的磨礪,計算機科學大師Jon Bentley以其獨有的洞察力和創(chuàng)造力,從磨礪程序員的實際問題中凝結(jié)出一篇篇不朽的編程“珠璣”,成為世界計算機界名刊《ACM通訊》歷史上最受歡迎的專欄,最終結(jié)集為兩部不朽的計算機科學經(jīng)典名著,影響和激勵著一代又一代程序員和計算機科學工作者。本書為第二卷,秉承了第一卷的風格,但本書涉及的范圍更廣,包括文檔、小語言、性能監(jiān)視、圖形輸出等?! ≡跁校髡哌x取許多具有典型意義的復雜編程和算法問題,生動描繪了歷史上眾大師們在探索解決方案中發(fā)生的軼事、走過的彎路和不斷精益求精的歷程,引導讀者像真正的程序員和軟件工程師那樣富于創(chuàng)新性地思考,并透徹闡述和總結(jié)了許多獨特而精妙的設計原則、思考和解決問題的方法以及實用程序設計技巧。每章后所附習題極具挑戰(zhàn)性和啟發(fā)性,書末給出了簡潔的解答。

圖書封面

圖書標簽Tags

評論、評分、閱讀與下載


    編程珠璣II PDF格式下載


用戶評論 (總計10條)

 
 

  •   這本書不是教語法,也不是教編程習慣,而是教編程技巧,更適合c程序員學習,不用再羨慕面向?qū)ο蟮膁esign pattern。
  •   書很薄,字字珠璣。不讀這本書絕對是一個損失。
  •   加上第一部研究起來真有意思
  •   鍛煉算法能力解析
  •   沒有傳說中的好,但消遣看看還行
  •   就是可惜我智商不高,看著有點痛苦!
  •   翻譯的比較拗口,看起來不是很順暢。與編程珠璣i比較起來,書薄了,價格貴了,還有些內(nèi)容與編程珠璣i重復。不知道這本書的英文原版是那一年出的,書中的深入閱讀動輒就是197x年文獻,我想看這些參考資料也難找,不過雖然年代久遠,很多思想還是成立的。書薄,所以很多東西作者都是點到為止,要想深入的話還得查看其它資料??赡芪业膬?nèi)力不夠,目前看這本書感覺收獲沒有想象的那么多。
  •   沒有編程珠璣1好,有些章節(jié)涉及太多細節(jié),比如awk語言,比如圖表制作。但是比市面上一般的書還是好多了
  •   感覺有些難,正如書所說,像是滄海拾珠
  •   可惜錯當成I的第二版買了,還要找來I看看
 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網(wǎng) 手機版

京ICP備13047387號-7