程序是怎樣跑起來的, 3/e

[日]矢澤久雄

  • 出版商: 人民郵電
  • 出版日期: 2022-12-01
  • 售價: $359
  • 貴賓價: 9.5$341
  • 語言: 簡體中文
  • 頁數: 273
  • ISBN: 7115595135
  • ISBN-13: 9787115595133
  • 相關分類: C 程式語言Python程式語言
  • 立即出貨

  • 程序是怎樣跑起來的, 3/e-preview-1
  • 程序是怎樣跑起來的, 3/e-preview-2
程序是怎樣跑起來的, 3/e-preview-1

買這商品的人也買了...

商品描述

本書從電腦的內部結構開始講起,以圖配文的形式詳細講解了二進制、內存、數據壓縮、源文件和可執行文件、操作系統和應用程序的關系、匯編語言、硬件控制方法等內容,目的是讓讀者瞭解從用戶雙擊程序圖標到程序開始運行之間到底發生了什麽。書中還專設了“如果是你,你會怎樣講呢?”專欄,以小學生、老奶奶等為對象講解程序的運行原理,頗為有趣。

第3版升級了書中用到的軟件產品和開發工具,並在正文和註釋中補充了大量內容,讓初學者更容易理解。對於舊版中頗受好評的硬件相關章節,更新了C語言的樣例代碼。書末附錄關於C語言的章節也升級至最新標準。

第12章新增了Python機器學習的內容,讓初學者能夠輕松體驗人工智能的樂趣。附錄也增加了對Python語言的介紹。

本書圖文並茂,通俗易懂,非常適合電腦愛好者及相關從業人員閱讀。

作者簡介

矢沢久雄

YAZAWA股份有限公司董事长兼总经理。GrapeCity信息技术集团顾问。电脑作家之友会会长。 曾在某大型电子公司从事过电脑生产,在Software House做过程序员,现主要从事软件开发工作。工作之余笔耕不辍,从电路到编程语言均有涉及。代表作有《计算机是怎样跑起来的》《使用C语言学习程序设计的基础》《征服C++类和继承》等。自称软件艺人。

目錄大綱

目錄

第 1章 對程序員來說,CPU到底是什麽  1

1.1 看一看 CPU的內部構造  3

1.2 CPU是寄存器的集合體  6

1.3 決定程序流程的程序計數器  9

1.4 條件分支和循環的原理  10

1.5 函數調用的原理  13

1.6 用基址和變址實現數組  16

1.7 CPU的處理其實很簡單  17

第 2章 用二進制來理解數據  19

2.1 電腦用二進制處理信息的原因  21

2.2 二進制到底是什麽  23

2.3 移位運算與乘除運算的關系  25

2.4 便於電腦處理的“2的補碼”  27

2.5 邏輯右移與算術右移的區別  31

2.6 掌握邏輯運算的竅門  34

如果是你,你會怎樣講呢? 給小學新生講解 CPU和二進制  38

第3章 電腦在計算小數時會出錯的原因  31

3.1 將0.1累加100次的結果不是10  33

3.2 如何用二進製表示小數  35

3.3 電腦計算出錯的原因  36

3.4 什麽是浮點數  38

3.5 規格化表示法與移碼表示法  50

3.6 用程序來實際確認一下吧  53

3.7 如何避免電腦計算出錯  56

第4章 讓內存化方為圓  61

4.1 內存的物理結構十分簡單  63

4.2 內存的邏輯結構像一幢大樓  67

4.3 指針其實很簡單  69

4.4 用好內存先從數組開始  71

4.5 棧與隊列,以及環形緩沖區  73

4.6 在鏈表中添加和刪除元素很容易  78

4.7 用二叉查找樹高效地查找數據  82

第5章 內存與磁盤的密切聯系  85

5.1 程序加載到內存後才能運行  87

5.2 提高磁盤訪問速度的磁盤緩存  88

5.3 將磁盤當成內存使用的虛擬內存  89

5.4 將內存當成磁盤使用的固態硬盤  92

5.5 節約內存的編程技巧  93

5.6 瞭解一下磁盤的物理結構  98

第6章 自己動手壓縮數據  103

6.1 文件是以字節為單位記錄的  105

6.2 游程編碼的原理  106

6.3 游程編碼的缺點  107

6.4 從莫爾斯碼中發現哈夫曼算法的基礎  108

6.5 使用樹來構建哈夫曼編碼  111

6.6 通過哈夫曼算法大幅提高壓縮效率  114

6.7 無損壓縮與有損壓縮  115

如果是你,你會怎樣講呢? 給喜歡打游戲的初中生講解內存和磁盤  119

第7章 程序在怎樣的環境下運行  121

7.1 運行環境 =操作系統+硬件  123

7.2 Windows消除了CPU之外的硬件差異  125

7.3 每種操作系統的API都是不同的  128

7.4 使用源代碼進行安裝  129

7.5 在任何地方都能提供相同運行環境的 Java虛擬機  130

7.6 雲計算平臺提供的虛擬運行環境  132

7.7 BIOS與引導裝入程序  134

第8章 從源文件到可執行文件  137

8.1 電腦只能執行本機代碼  140

8.2 看一看本機代碼的內容  142

8.3 編譯器負責翻譯源代碼  144

8.4 僅靠編譯無法得到可執行文件  146

8.5 啟動代碼與庫文件  147

8.6 DLL文件與導入庫  149

8.7 運行可執行文件需要什麽  152

8.8 加載時生成的棧和堆  153

8.9 進階問答  155

第9章 操作系統與應用程序的關系  159

9.1 從歷史發展看操作系統的功能  161

9.2 關註操作系統的存在  164

9.3 系統調用與高級編程語言的可移植性  166

9.4 操作系統和高級編程語言對硬件進行了抽象化  168

9.5 Windows操作系統的特點  170

如果是你,你會怎樣講呢? 給喜歡智能手機的高中女生講解操作系統的功能  177

第 10章 通過匯編語言認識程序的真面目  179

10.1 匯編語言和本機代碼是一一對應的  181

10.2 用C編譯器輸出匯編語言源代碼  183

10.3 偽指令與註釋  186

10.4 匯編語言的語法是“操作碼 操作數”  187

10.5 最常用的movl指令  189

10.6 將數據存入棧中  191

10.7 函數調用的工作原理  192

10.8 被調用函數的工作原理  194

10.9 全局變量和局部變量的工作原理  195

10.10 循環的工作原理  199

10.11 條件分支的工作原理  203

10.12 體驗匯編語言的意義  207

第 11章 訪問硬件的方法  209

11.1 應用程序是否與硬件有關  211

11.2 負責硬件輸入輸出的in指令和out指令  213

11.3 外部設備的中斷請求  216

11.4 通過中斷實現實時處理  220

11.5 能夠快速傳輸大量數據的DMA  220

11.6 顯示字符和圖像的原理  222

如果是你,你會怎樣講呢? 給鄰居老奶奶講解顯示器與電視機的區別  224

第 12章 如何讓電腦“學習”  227

12.1 什麽是機器學習  229

12.2 支持向量機  231

12.3 Python交互模式的使用方法  234

12.4 準備學習數據  236

12.5 查看手寫數字數據的內容  237

12.6 通過機器學習識別手寫數字  239

12.7 嘗試交叉驗證  242

如果是你,你會怎樣講呢? 給常去的酒館的老闆講解機器學習的類別  244

附錄1 親手嘗試C語言  247

C語言的特點  247

變量與函數  248

數據類型  249

輸入、運算、輸出  250

創建和使用函數  252

局部變量與全局變量  254

數組與循環  255

其他語法  257

附錄2 親手嘗試Python  261

Python的特點  261

一切皆對象  263

數據類型  265

輸入、運算、輸出  266

創建和使用函數  266

局部變量與全局變量  268

數組與循環  269

其他語法  271

後記  273

致謝  273