内容简介 · · · · · ·
本书从计算机的内部结构开始讲起,以图配文的形式详细讲解了二进制、内存、数据压缩、源文件和可执行文件、操作系统和应用程序的关系、汇编语言、硬件控制方法等内容,目的是让读者了解从用户双击程序图标到程序开始运行之间到底发生了什么。书中还专设了“如果是你,你会怎样讲呢?”专栏,以小学生、老奶奶等为对象讲解程序的运行原理,颇为有趣。
第3版升级了书中用到的软件产品和开发工具,并在正文和注释中补充了大量内容,让初学者更容易理解。对于旧版中颇受好评的硬件相关章节,更新了C语言的样例代码。书末附录关于C语言的内容也升级至最新标准。
第12章新增了Python机器学习的内容,让初学者能够轻松体验人工智能的乐趣。附录也增加了对Python语言的介绍。
本书图文并茂,通俗易懂,非常适合计算机爱好者及相关从业人员阅读。
作者简介 · · · · · ·
矢沢久雄,YAZAWA 股份有限公司董事长兼总经理。GrapeCity 信息技术集团顾问。电脑作家之友会会长。曾在某大型电子公司从事过电脑生产,在 Software House 做过程序员,现主要从事软件开发工作。工作之余笔耕不辍,从电路到编程语言均有涉及。代表作有《计算机是怎样跑起来的》《使用C语言学习程序设计的基础》《征服C++类和继承》等。自称软件艺人。
目录 · · · · · ·
1.1 看一看 CPU的内部构造 3
1.2 CPU是寄存器的集合体 6
1.3 决定程序流程的程序计数器 9
1.4 条件分支和循环的原理 10
1.5 函数调用的原理 13
· · · · · · (更多)
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
· · · · · · (收起)
喜欢读"程序是怎样跑起来的(第3版)"的人也喜欢的电子书 · · · · · ·
喜欢读"程序是怎样跑起来的(第3版)"的人也喜欢 · · · · · ·
- 计算机是怎样跑起来的 7.6
- 数学那些事 8.6
- 图解设计模式 8.8
- 贝叶斯的博弈 8.2
- 深入理解计算机系统(原书第3版) 9.7
- 研究之美 8.3
- 程序员修炼之道(第2版) 9.1
- 重构(第2版) 9.3
- 天才引导的历程 9.1
程序是怎样跑起来的(第3版)的书评 · · · · · · ( 全部 11 条 )
极简版《计算机组成原理》
这篇书评可能有关键情节透露
注: 这是markdown原始文稿,无法看到图片,富文本格式文章见 《极简版计算机原理》 。 这两周读了日本作者矢泽久雄写的[《程序是怎么跑起来的》][1],解开了我这个作为通信专业的软件从业者的很多困惑,为了避免日后遗忘,将一些看了这本书之后的问题的解答记录下来。 Q:... (展开)菜鸟入门的《计算机组成原理》图解简易版
初级版的《深入理解计算机系统》
这篇书评可能有关键情节透露
这本书比较适合学了《微机原理》之后,又写了一段时间的代码的同学来看,能够把整个知识体系给串起来。 我们以前学习的很多知识,其实是很割裂的,大学学习的 C 语言,单片机,微机原理,数字电路与模拟电路等很多知识,当时学习像是一个一个的点,工作之后慢慢连成了线,直至... (展开)搭建学习编程的框架体系
应用程序开发者也应该注重底层实现,很好的一本入门书籍
这篇书评可能有关键情节透露
前4章的内容在CSAPP中有涉及,本书写的比较简略,只适合初学者阅读,后面的章节看了比较有收获。 虽然书的有些具体细节内容已经过时了(比如在Macintosh上运行Windows XP),但是最底层的细节是不会变的,所以本书作为一本入门科普书籍,仍然有其特殊的意义。 看完了以后对操作... (展开)如何向他人介绍你了解的东西
> 更多书评 11篇
论坛 · · · · · ·
在这本书的论坛里发言这本书的其他版本 · · · · · · ( 全部4 )
-
人民邮电出版社 (2015)8.1分 1091人读过
-
日経ソフトウエア (2007)暂无评分 2人读过
-
日経BP出版センター (2001)暂无评分
以下书单推荐 · · · · · · ( 全部 )
- 数字化抓手----EA/企业架构生命周期管理 (小毛叔)
- 书单 (杰哒哒)
- 新出版 (.)
- 计算机必读 (haskelllu)
- 计算机自我教育 (阳光大子弟)
谁读这本书? · · · · · ·
二手市场
· · · · · ·
- 在豆瓣转让 有87人想读,手里有一本闲着?
订阅关于程序是怎样跑起来的(第3版)的评论:
feed: rss 2.0
5 有用 假如讓我說下去 2023-08-19 12:45:12 北京
三本書的難度:《網絡是怎樣連接的》 < 《 計算機是怎樣跑起來的》< 《程序是怎樣跑起來的》 ,最後一本第10章匯編語言是難點。三本書配合crash course 對照著來看,對底層原理理解會更清楚。下一步是Harvard CS50
0 有用 涓流充电 2024-02-29 22:26:49 江西
大学对计算机没有学懂,这本书还是启发很大的。计算机,本质是计算,1.程序语言是对任务进行描述的载体,与中文英文西班牙语这一类自然语言无异;2.数据结构是ipo原则下,对数据的组织形式,如数组字典集合等;3.算法是解决问题的步骤。
0 有用 LavaThroughIce 2023-05-31 16:13:32 北京
原始雪球
0 有用 Hux 2023-09-20 12:33:00 上海
挺轻松的。作为专业人士,没必要读了。对于业余爱好者,不确定能否读明白,有些地方并不简单。
0 有用 seek 2024-04-02 11:08:43 广东
内容不注水,讲解很耐心,好久没有这么酣畅淋漓的阅读体验了
0 有用 Dogggg 2024-05-17 16:24:38 四川
一本食之无味弃之可惜的书,没什么太多干货,我觉得适合中小学生看着玩
0 有用 __chaz 2024-05-14 00:16:20 北京
非常适合入门(2025-05-14)
0 有用 系 2024-05-04 21:29:43 河北
最后的猜拳游戏非常有趣,通过编程模拟人类的“思考”能力。
0 有用 CYPHEr 2024-04-30 09:30:25 江苏
一般吧,专家不用学,没入门的估计看不懂
0 有用 seek 2024-04-02 11:08:43 广东
内容不注水,讲解很耐心,好久没有这么酣畅淋漓的阅读体验了