作品介紹

程序是怎樣跑起來的


作者:[日]矢澤久雄     整理日期:2017-03-16 00:18:24


  本書從計算機(jī)的內(nèi)部結(jié)構(gòu)開始講起,以圖配文的形式詳細(xì)講解了二進(jìn)制、內(nèi)存、數(shù)據(jù)壓縮、源文件和可執(zhí)行文件、操作系統(tǒng)和應(yīng)用程序的關(guān)系、匯編語言、硬件控制方法等內(nèi)容,目的是讓讀者了解從用戶雙擊程序圖標(biāo)到程序開始運行之間到底發(fā)生了什么。同時專設(shè)了“如果是你,你會怎樣介紹?”專欄,以小學(xué)生、老奶奶為對象講解程序的運行原理,頗為有趣。本書圖文并茂,通俗易懂,非常適合計算機(jī)愛好者及相關(guān)從業(yè)人員閱讀。

作者簡介

作者簡介:
  矢澤久雄
  YAZAWA股份有限公司董事長兼總經(jīng)理。GrapeCity信息技術(shù)集團(tuán)顧問。電腦作家之友會會長。
  曾在某大型電子公司從事過電腦生產(chǎn),在Software House做過程序員,現(xiàn)主要從事軟件包的開發(fā)工作。工作之余筆耕不綴,從電路到編程語言均有涉及。代表作有《計算機(jī)是怎樣跑起來的》《使用C語言學(xué)習(xí)程序設(shè)計的基礎(chǔ)》《征服C++類和繼承》等。自稱軟件藝人。
  譯者簡介:
  李逢俊
  北京易網(wǎng)聯(lián)信信息技術(shù)有限公司CEO。
  哈爾濱工業(yè)大學(xué)碩士畢業(yè)后在日工作8年,曾在日本知名游戲公司擔(dān)任移動互聯(lián)網(wǎng)部門負(fù)責(zé)人,擁有豐富的移動游戲開發(fā)及運營經(jīng)驗。2011年回國創(chuàng)業(yè),創(chuàng)建易網(wǎng)聯(lián)信團(tuán)隊(www.easymobi.cn),致力于精品手機(jī)游戲的開發(fā)及運營。

目錄:
  第1章 對程序員來說CPU是什么  1
  1.1 CPU的內(nèi)部結(jié)構(gòu)解析  3
  1.2 CPU是寄存器的集合體  6
  1.3 決定程序流程的程序計數(shù)器  9
  1.4 條件分支和循環(huán)機(jī)制  10
  1.5 函數(shù)的調(diào)用機(jī)制  13
  1.6 通過地址和索引實現(xiàn)數(shù)組  16
  1.7 CPU的處理其實很簡單  17
  第2章 數(shù)據(jù)是用二進(jìn)制數(shù)表示的  19
  2.1 用二進(jìn)制數(shù)表示計算機(jī)信息的原因  21
  2.2 什么是二進(jìn)制數(shù)  23
  2.3 移位運算和乘除運算的關(guān)系  25
  2.4 便于計算機(jī)處理的“補(bǔ)數(shù)”  27
  2.5 邏輯右移和算術(shù)右移的區(qū)別  31
  2.6 掌握邏輯運算的竅門  34
  COLUMN 如果是你,你會怎樣介紹?——向小學(xué)生講解CPU和二進(jìn)制  38
  第3章 計算機(jī)進(jìn)行小數(shù)運算時出錯的原因  41
  3.1 將0.1累加100次也得不到10  43
  3.2 用二進(jìn)制數(shù)表示小數(shù)  44
  3.3 計算機(jī)運算出錯的原因  46
  3.4 什么是浮點數(shù)  47
  3.5 正則表達(dá)式和  EXCESS系統(tǒng)  50
  3.6 在實際的程序中進(jìn)行確認(rèn)  52
  3.7 如何避免計算機(jī)計算出錯  55
  3.8 二進(jìn)制數(shù)和十六進(jìn)制數(shù)  56
  第4章 熟練使用有棱有角的內(nèi)存  59
  4.1 內(nèi)存的物理機(jī)制很簡單  61
  4.2 內(nèi)存的邏輯模型是樓房  65
  4.3 簡單的指針  67
  4.4 數(shù)組是高效使用內(nèi)存的基礎(chǔ)  69
  4.5 棧、隊列以及環(huán)形緩沖區(qū)  71
  4.6 鏈表使元素的追加和刪除更容易  75
  4.7 二叉查找樹使數(shù)據(jù)搜索更有效  79
  第5章 內(nèi)存和磁盤的親密關(guān)系  81
  5.1 不讀入內(nèi)存就無法運行  83
  5.2 磁盤緩存加快了磁盤訪問速度  84
  5.3 虛擬內(nèi)存把磁盤作為部分內(nèi)存來使用  85
  5.4 節(jié)約內(nèi)存的編程方法  88
  5.5 磁盤的物理結(jié)構(gòu)  93
  第6章 親自嘗試壓縮數(shù)據(jù)  97
  6.1 文件以字節(jié)為單位保存  99
  6.2 RLE  算法的機(jī)制  100
  6.3 RLE  算法的缺點  101
  6.4 通過莫爾斯編碼來看哈夫曼算法的基礎(chǔ)  103
  6.5 用二叉樹實現(xiàn)哈夫曼編碼  105
  6.6 哈夫曼算法能夠大幅提升壓縮比率  109
  6.7 可逆壓縮和非可逆壓縮  110
  COLUMN 如果是你,你會怎樣介紹?——向沉迷游戲的中學(xué)生講解內(nèi)存和磁盤  114
  第7章 程序是在何種環(huán)境中運行的  117
  7.1 運行環(huán)境=操作系統(tǒng)+硬件  119
  7.2 Windows克服了CPU以外的硬件差異  122
  7.3 不同操作系統(tǒng)的API不同  124
  7.4 FreeBSD Port幫你輕松使用源代碼  125
  7.5 利用虛擬機(jī)獲得其他操作系統(tǒng)環(huán)境  127
  7.6 提供相同運行環(huán)境的 Java虛擬機(jī)  128
  7.7 BIOS和引導(dǎo)  130
  第8章 從源文件到可執(zhí)行文件  133
  8.1 計算機(jī)只能運行本地代碼  135
  8.2 本地代碼的內(nèi)容  137
  8.3 編譯器負(fù)責(zé)轉(zhuǎn)換源代碼  139
  8.4 僅靠編譯是無法得到可執(zhí)行文件的  141
  8.5 啟動及庫文件  143
  8.6 DLL文件及導(dǎo)入庫  145
  8.7 可執(zhí)行文件運行時的必要條件  146
  8.8 程序加載時會生成棧和堆  148
  8.9 有點難度的Q&A  150
  第9章 操作系統(tǒng)和應(yīng)用的關(guān)系  153
  9.1 操作系統(tǒng)功能的歷史  155
  9.2 要意識到操作系統(tǒng)的存在  157
  9.3 系統(tǒng)調(diào)用和高級編程語言的移植性  160
  9.4 操作系統(tǒng)和高級編程語言使硬件抽象化  161
  9.5 Windows操作系統(tǒng)的特征  163
  COLUMN 如果是你,你會怎樣介紹?——向超喜歡手機(jī)的女高中生講解操作系統(tǒng)的作用  170
  第10章 通過匯編語言了解程序的實際構(gòu)成  173
  10.1 匯編語言和本地代碼是一一對應(yīng)的  175
  10.2 通過編譯器輸出匯編語言的源代碼  177
  10.3 不會轉(zhuǎn)換成本地代碼的偽指令  180
  10.4 匯編語言語法是“操作碼+操作數(shù)”  182
  10.5 最常用的mov指令  185
  10.6 對棧進(jìn)行push和pop 185
  10.7 函數(shù)調(diào)用機(jī)制  187
  10.8 函數(shù)內(nèi)部的處理  189
  10.9 始終確保全局變量用的內(nèi)存空間  191
  10.10 臨時確保局部變量用的內(nèi)存空間  196
  10.11 循環(huán)處理的實現(xiàn)方法  199
  10.12 條件分支的實現(xiàn)方法  202
  10.13 了解程序運行方式的必要性  204
  第11章 硬件控制方法  209
  11.1 應(yīng)用和硬件無關(guān)?  211
  11.2 支撐硬件輸入輸出的IN指令和OUT指令  212
  11.3 編寫測試用的輸入輸出程序  215
  11.4 外圍設(shè)備的中斷請求  218
  11.5 用中斷來實現(xiàn)實時處理  221
  11.6 DMA可以實現(xiàn)短時間內(nèi)傳送大量數(shù)據(jù)  222
  11.7 文字及圖片的顯示機(jī)制  224
  COLUMN 如果是你,你會怎樣介紹?——向鄰居老奶奶說明顯示器和電視機(jī)的不同  226
  第12章 讓計算機(jī)“思考”  229
  12.1 作為“工具”的程序和為了“思考”的程序  231
  12.2 用程序來表示人類的思考方式  232
  12.3 用程序來表示人類的思考習(xí)慣  235
  12.4 程序生成隨機(jī)數(shù)的方法  237
  12.5 活用記憶功能以達(dá)到更接近人類的判斷  239
  12.6 用程序來表示人類的思考方式  242
  COLUMN 如果是你,你會怎樣介紹?——向常光臨的酒館老板講解計算機(jī)的思考機(jī)制  245
  附錄 讓我們開始C語言之旅  247
  C語言的特點  247
  變量和函數(shù)  248
  數(shù)據(jù)類型  249
  標(biāo)準(zhǔn)函數(shù)庫  250
  函數(shù)調(diào)用  251
  局部變量和全局變量  254
  數(shù)組和循環(huán)  255
  其他語法結(jié)構(gòu)  256





上一本:鳥的感官 下一本:非洲草原歷險記/我的第一本科學(xué)漫畫書

作家文集

下載說明
程序是怎樣跑起來的的作者是[日]矢澤久雄,全書語言優(yōu)美,行文流暢,內(nèi)容豐富生動引人入勝。為表示對作者的支持,建議在閱讀電子書的同時,購買紙質(zhì)書。

更多好書