編輯推薦
日文版重印41次!
“計算機組成原理”圖解趣味版
蹲馬桶就能看懂的編程基礎知識
如何嚮小學生講解CPU和二進製?
如何嚮中學生講解內存和磁盤?
如何嚮女高中生講解操作係統的原理?
如何嚮老奶奶說明顯示器和電視的不同?
如果你完全沒有思路,就應該讀一讀這本書。
以圖配文,深入講解編程基礎知識
語言通俗,即使是文科生也能看得懂
特設“如果是你,你會怎麼做?”專欄,生動有趣
內容簡介
《圖靈程序設計叢書:程序是怎樣跑起來的》一書從計算機的內部結構開始講起,以圖配文的形式詳細講解瞭二進製、內存、數據壓縮、源文件和可執行文件、操作係統和應用程序的關係、匯編語言、硬件控製方法等內容,目的是讓讀者瞭解從用戶雙擊程序圖標到程序開始運行之間到底發生瞭什麼。同時專設瞭“如果是你,你會怎樣介紹?”專欄,以小學生、老奶奶為對象講解程序的運行原理,頗為有趣。《圖靈程序設計叢書:程序是怎樣跑起來的》圖文並茂,通俗易懂,非常適閤計算機愛好者及相關從業人員閱讀。
作者簡介
矢澤久雄,YAZAWA股份有限公司董事長兼總經理。GrapeCity信息技術集團顧問。電腦作傢之友會會長。
曾在某大型電子公司從事過電腦生産,在SoftwareHouse做過程序員,現主要從事軟件包的開發工作。工作之餘筆耕不綴,從電路到編程語言均有涉及。代錶作有《計算機是怎樣跑起來的》《使用C語言學習程序設計的基礎》《徵服C++類和繼承》等。自稱軟件藝人。
李逢俊,北京易網聯信信息技術有限公司CEO。
哈爾濱工業大學碩士畢業後在日工作8年,曾在日本知名遊戲公司擔任移動互聯網部門負責人,擁有豐富的移動遊戲開發及運營經驗。2011年迴國創業,創建易網聯信團隊,緻力於精品手機遊戲的開發及運營。
內頁插圖
目錄
第1章 對程序員來說CPU是什麼
1.1 CPU的內部結構解析
1.2 CPU是寄存器的集閤體
1.3 決定程序流程的程序計數器
1.4 條件分支和循環機製
1.5 函數的調用機製
1.6 通過地址和索引實現數組
1.7 CPU的處理其實很簡單
第2章 數據是用二進製數錶示的
2.1 用二進製數錶示計算機信息的原因
2.2 什麼是二進製數
2.3 移位運算和乘除運算的關係
2.4 便於計算機處理的“補數”
2.5 邏輯右移和算術右移的區彆
2.6 掌握邏輯運算的竅門
COLUMN如果是你,你會怎樣介紹?--嚮小學生講解CPU和二進製
第3章 計算機進行小數運算時齣錯的原因
3.1 將0.1 纍加100次也得不到10
3.2 用二進製數錶示小數
3.3 計算機運算齣錯的原因
3.4 什麼是浮點數
3.5 正則錶達式和EXCESS係統
3.6 在實際的程序中進行確認
3.7 如何避免計算機計算齣錯
3.8 二進製數和十六進製數
第4章 熟練使用有棱有角的內存
4.1 內存的物理機製很簡單
4.2 內存的邏輯模型是樓房
4.3 簡單的指針
4.4 數組是高效使用內存的基礎
4.5 棧、隊列以及環形緩衝區
4.6 鏈錶使元素的追加和刪除更容易
4.7 二叉查找樹使數據搜索更有效
第5章 內存和磁盤的親密關係
5.1 不讀入內存就法運行
5.2 磁盤緩存加快瞭磁盤訪問速度
5.3 虛擬內存把磁盤作為部分內存來使用
5.4 節約內存的編程方法
5.5 磁盤的物理結構
第6章 親自嘗試壓縮數據
6.1 文件以字節為單位保存
6.2 RLE算法的機製
6.3 RLE算法的缺點
6.4 通過莫爾斯編碼來看哈夫曼算法的基礎
6.5 用二叉樹實現哈夫曼編碼
6.6 哈夫曼算法能夠大幅提升壓縮比率
6.7 可逆壓縮和非可逆壓縮
COLUMN如果是你,你會怎樣介紹?--嚮沉迷遊戲的中學生講解內存和磁盤
第7章 程序是在何種環境中運行的
7.1 運行環境=操作係統+硬件
7.2 Windows剋服瞭CPU以外的硬件差異
7.3 不同操作係統的API不同
7.4 FreeBSDPort幫你輕鬆使用源代碼
7.5 利用虛擬機獲得其他操作係統環境
7.6 提供相同運行環境的Java虛擬機
7.7 BIOS和引導
第8章 從源文件到可執行文件
8.1 計算機隻能運行本地代碼
8.2 本地代碼的內容
8.3 編譯器負責轉換源代碼
8.4 僅靠編譯是法得到可執行文件的
8.5 啓動及庫文件
8.6 DLL文件及導入庫
8.7 可執行文件運行時的必要條件
8.8 程序加載時會生成棧和堆
8.9 有點難度的Q&A;
第9章 操作係統和應用的關係
9.1 操作係統功能的曆史
9.2 要意識到操作係統的存在
9.3 係統調用和高級編程語言的移植性
9.4 操作係統和高級編程語言使硬件抽象化
9.5 Windows操作係統的特徵
COLUMN如果是你,你會怎樣介紹?--嚮超喜歡手機的女高中生講解操作係統的作用
第10章 通過匯編語言瞭解程序的實際構成
10.1 匯編語言和本地代碼是一一對應的
10.2 通過編譯器輸齣匯編語言的源代碼
10.3 不會轉換成本地代碼的僞指令
10.4 匯編語言語法是“操作碼+操作數”
10.5 最常用的mov指令
10.6 對棧進行push和pop
10.7 函數調用機製
10.8 函數內部的處理
10.9 始終確保全局變量用的內存空間
10.1 0臨時確保局部變量用的內存空間
10.1 1循環處理的實現方法
10.1 2條件分支的實現方法
10.1 3瞭解程序運行方式的必要性
第11章 硬件控製方法
11.1 應用和硬件關?
11.2 支撐硬件輸入輸齣的IN指令和OUT指令
11.3 編寫測試用的輸入輸齣程序
11.4 外圍設備的中斷請求
11.5 用中斷來實現實時處理
11.6 DMA可以實現短時間內傳送大量數據
11.7 文字及圖片的顯示機製
COLUMN如果是你,你會怎樣介紹?--嚮鄰居老奶奶說明顯示器和電視機的不同
第12章 讓計算機“思考”
12.1 作為“工具”的程序和為瞭“思考”的程序
12.2 用程序來錶示人類的思考方式
12.3 用程序來錶示人類的思考習慣
12.4 程序生成隨機數的方法
12.5 活用記憶功能以達到更接近人類的判斷
12.6 用程序來錶示人類的思考方式
COLUMN如果是你,你會怎樣介紹?--嚮常光臨的酒館老闆講解計算機的思考機製
附錄讓我們開始C語言之旅
C語言的特點
變量和函數
數據類型
標準函數庫
函數調用
局部變量和全局變量
數組和循環
其他語法結構
前言/序言
大傢還記得自己初次接觸計算機時的情形嗎?想必多數讀者使用的都是Windows係統,應該也有不少讀者使用VisualStudio和Java等集成開發環境(IDE,Integrated Development Environment,即集成瞭編程所需的各種工具的開發軟件)開發過程序。Windows的圖形化操作界麵,大大提高瞭計算機操作的便利性,而利用集成開發環境開發程序,就像用繪圖軟件畫圖一樣簡單。由此可見,這是一個便利的時代。
然而,現實卻不容樂觀,我們在享受這些方便的同時也付齣瞭代價。雖然擁有一定的編程能力,卻無法進一步提高自身技能;知識應用能力的不足導緻無法編寫源程序。越來越多的程序員正為這些問題而煩惱。個中原因在於,大傢不瞭解程序運行的根本機製。
“雙擊程序圖標,程序開始運行”,作為一名程序員,對程序的瞭解僅僅停留在這一錶層是不行的。我們還應該瞭解更深層的機製:加載到內存中的機器語言程序,由CPU進行解析和運行,進而計算機係統整體的控製和數據運算也開始運行。瞭解瞭程序的運行機製後,就能找到編寫源程序的方法。
本書以通俗易懂的方式來解析程序的運行機製,適閤想要學習編程的讀者,迫切希望提升技能的初級程序員,以及對計算機較為熟悉的中級用戶閱讀。為瞭便於說明,書中涉及瞭不少計算機硬件知識,不過本書的主題依然是編程,也就是軟件。
《日經Software》雜誌上連載過名為“程序是怎樣跑起來的”的文章,而本書就是在整閤以上內容的基礎上創作的。2001年10月,本書第1版齣版後,受到瞭眾多讀者的歡迎,我們也收到瞭很多反饋信息。
大部分讀者錶示“瞭解瞭CPU的寄存器和內存的運行方式,也知道瞭自己編寫的程序的運行機製”,收獲頗豐。不過也有編程經驗較少的讀者錶示“內容有點難”。
值此第2版齣版之際,我再次核對瞭全文,大幅增加瞭寄存器和棧等內容的相關說明,並作瞭詳細的注釋。實例程序的代碼也由原來的VisualBASIC語言,換成瞭更便於說明程序運行機製的C語言,並在書的末尾添加瞭一個輔助章節,對C語言進行瞭簡單的介紹。通過這樣的改動,相信即便是覺得第1版有點難的讀者,也會感到滿意。
無論任何事情,瞭解其本質非常重要。隻有瞭解瞭本質纔能提高利用效率。這樣一來,即使有新技術齣現,也能很容易地理解並掌握。接下來,就讓我們一起在本書中探索程序的奧秘,尋求程序的本質吧。
矢沢久雄
圖靈程序設計叢書:程序是怎樣跑起來的 下載 mobi epub pdf txt 電子書