出版社: 人民邮电出版社
出品方: 图灵教育
原作名: プログラムはなぜ動くのか 第2版 知っておきたいプログラムの基礎知識
译者: 李逢俊
出版年: 2015-4
页数: 272
定价: 39.00元
装帧: 平装
丛书: 图灵程序设计丛书·图解与入门系列
ISBN: 9787115385130
内容简介 · · · · · ·
本书从计算机的内部结构开始讲起,以图配文的形式详细讲解了二进制、内存、数据压缩、源文件和可执行文件、操作系统和应用程序的关系、汇编语言、硬件控制方法等内容,目的是让读者了解从用户双击程序图标到程序开始运行之间到底发生了什么。同时专设了“如果是你,你会怎样介绍?”专栏,以小学生、老奶奶为对象讲解程序的运行原理,颇为有趣。本书图文并茂,通俗易懂,非常适合计算机爱好者及相关从业人员阅读。
作者简介 · · · · · ·
作者简介:
矢泽久雄
YAZAWA股份有限公司董事长兼总经理。GrapeCity信息技术集团顾问。电脑作家之友会会长。
曾在某大型电子公司从事过电脑生产,在Software House做过程序员,现主要从事软件包的开发工作。工作之余笔耕不缀,从电路到编程语言均有涉及。代表作有《计算机是怎样跑起来的》《使用C语言学习程序设计的基础》《征服C++类和继承》等。自称软件艺人。
译者简介:
李逢俊
北京易网联信信息技术有限公司CEO。
哈尔滨工业大学硕士毕业后在日工作8年,曾在日本知名游戏公司担任移动互联网部门负责人,拥有丰富的移动游戏开发及运营经验。2011年回国创业,创建易网联信团队(www.easymobi.cn),致力于精品手机游戏的开发及运营。
目录 · · · · · ·
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 便于计算机处理的“补数” 27
2.5 逻辑右移和算术右移的区别 31
2.6 掌握逻辑运算的窍门 34
COLUMN 如果是你,你会怎样介绍?——向小学生讲解CPU和二进制 38
第3章 计算机进行小数运算时出错的原因 41
3.1 将0.1累加100次也得不到10 43
3.2 用二进制数表示小数 44
3.3 计算机运算出错的原因 46
3.4 什么是浮点数 47
3.5 正则表达式和 EXCESS系统 50
3.6 在实际的程序中进行确认 52
3.7 如何避免计算机计算出错 55
3.8 二进制数和十六进制数 56
第4章 熟练使用有棱有角的内存 59
4.1 内存的物理机制很简单 61
4.2 内存的逻辑模型是楼房 65
4.3 简单的指针 67
4.4 数组是高效使用内存的基础 69
4.5 栈、队列以及环形缓冲区 71
4.6 链表使元素的追加和删除更容易 75
4.7 二叉查找树使数据搜索更有效 79
第5章 内存和磁盘的亲密关系 81
5.1 不读入内存就无法运行 83
5.2 磁盘缓存加快了磁盘访问速度 84
5.3 虚拟内存把磁盘作为部分内存来使用 85
5.4 节约内存的编程方法 88
5.5 磁盘的物理结构 93
第6章 亲自尝试压缩数据 97
6.1 文件以字节为单位保存 99
6.2 RLE 算法的机制 100
6.3 RLE 算法的缺点 101
6.4 通过莫尔斯编码来看哈夫曼算法的基础 103
6.5 用二叉树实现哈夫曼编码 105
6.6 哈夫曼算法能够大幅提升压缩比率 109
6.7 可逆压缩和非可逆压缩 110
COLUMN 如果是你,你会怎样介绍?——向沉迷游戏的中学生讲解内存和磁盘 114
第7章 程序是在何种环境中运行的 117
7.1 运行环境=操作系统+硬件 119
7.2 Windows克服了CPU以外的硬件差异 122
7.3 不同操作系统的API不同 124
7.4 FreeBSD Port帮你轻松使用源代码 125
7.5 利用虚拟机获得其他操作系统环境 127
7.6 提供相同运行环境的 Java虚拟机 128
7.7 BIOS和引导 130
第8章 从源文件到可执行文件 133
8.1 计算机只能运行本地代码 135
8.2 本地代码的内容 137
8.3 编译器负责转换源代码 139
8.4 仅靠编译是无法得到可执行文件的 141
8.5 启动及库文件 143
8.6 DLL文件及导入库 145
8.7 可执行文件运行时的必要条件 146
8.8 程序加载时会生成栈和堆 148
8.9 有点难度的Q&A 150
第9章 操作系统和应用的关系 153
9.1 操作系统功能的历史 155
9.2 要意识到操作系统的存在 157
9.3 系统调用和高级编程语言的移植性 160
9.4 操作系统和高级编程语言使硬件抽象化 161
9.5 Windows操作系统的特征 163
COLUMN 如果是你,你会怎样介绍?——向超喜欢手机的女高中生讲解操作系统的作用 170
第10章 通过汇编语言了解程序的实际构成 173
10.1 汇编语言和本地代码是一一对应的 175
10.2 通过编译器输出汇编语言的源代码 177
10.3 不会转换成本地代码的伪指令 180
10.4 汇编语言语法是“操作码+操作数” 182
10.5 最常用的mov指令 185
10.6 对栈进行push和pop 185
10.7 函数调用机制 187
10.8 函数内部的处理 189
10.9 始终确保全局变量用的内存空间 191
10.10 临时确保局部变量用的内存空间 196
10.11 循环处理的实现方法 199
10.12 条件分支的实现方法 202
10.13 了解程序运行方式的必要性 204
第11章 硬件控制方法 209
11.1 应用和硬件无关? 211
11.2 支撑硬件输入输出的IN指令和OUT指令 212
11.3 编写测试用的输入输出程序 215
11.4 外围设备的中断请求 218
11.5 用中断来实现实时处理 221
11.6 DMA可以实现短时间内传送大量数据 222
11.7 文字及图片的显示机制 224
COLUMN 如果是你,你会怎样介绍?——向邻居老奶奶说明显示器和电视机的不同 226
第12章 让计算机“思考” 229
12.1 作为“工具”的程序和为了“思考”的程序 231
12.2 用程序来表示人类的思考方式 232
12.3 用程序来表示人类的思考习惯 235
12.4 程序生成随机数的方法 237
12.5 活用记忆功能以达到更接近人类的判断 239
12.6 用程序来表示人类的思考方式 242
COLUMN 如果是你,你会怎样介绍?——向常光临的酒馆老板讲解计算机的思考机制 245
附录 让我们开始C语言之旅 247
C语言的特点 247
变量和函数 248
数据类型 249
标准函数库 250
函数调用 251
局部变量和全局变量 254
数组和循环 255
其他语法结构 256
· · · · · · (收起)
"程序是怎样跑起来的"试读 · · · · · ·
大家还记得自己初次接触计算机时的情形吗?想必多数读者使用的都是Windows系统,应该也有不少读者使用Visual Studio和Java等集成开发环境(IDE,Integrated Development Environment,即集成了编程所需的各种工具的开发软件)开发过程序。Windows的图形化操作界面,大大提高了计算机操作的便利性,而利用集成开发环境开发程序,就像用绘图软件画图一样简单。由此可见,这是一个便利的时代...
丛书信息
· · · · · ·
喜欢读"程序是怎样跑起来的"的人也喜欢的电子书 · · · · · ·
喜欢读"程序是怎样跑起来的"的人也喜欢 · · · · · ·
-
- 计算机是怎样跑起来的 7.7
-
- 面向对象是怎样工作的(第2版) 8.2
-
- 编码 9.3
-
- 算法图解 8.5
-
- 代码之髓 7.9
-
- 图解TCP/IP (第5版) 7.8
-
- 图解HTTP 8.1
-
- 计算的本质 8.7
-
- 我的第一本算法书 8.0
-
- 穿越计算机的迷雾 8.9
程序是怎样跑起来的的书评 · · · · · · ( 全部 11 条 )
![](https://img9.doubanio.com/icon/u1019027-5.jpg)
大道至简,程序运行背后的原理其实很简单
![](https://img9.doubanio.com/icon/u210562437-4.jpg)
应用程序开发者也应该注重底层实现,很好的一本入门书籍
这篇书评可能有关键情节透露
前4章的内容在CSAPP中有涉及,本书写的比较简略,只适合初学者阅读,后面的章节看了比较有收获。 虽然书的有些具体细节内容已经过时了(比如在Macintosh上运行Windows XP),但是最底层的细节是不会变的,所以本书作为一本入门科普书籍,仍然有其特殊的意义。 看完了以后对操作... (展开)![](https://img2.doubanio.com/icon/u178464920-1.jpg)
如何向他人介绍你了解的东西
> 更多书评 11篇
论坛 · · · · · ·
在这本书的论坛里发言这本书的其他版本 · · · · · · ( 全部4 )
-
人民邮电出版社 (2022)8.7分 31人读过
-
日経ソフトウエア (2007)暂无评分 2人读过
-
日経BP出版センター (2001)暂无评分
以下书单推荐 · · · · · · ( 全部 )
谁读这本书? · · · · · ·
二手市场
· · · · · ·
订阅关于程序是怎样跑起来的的评论:
feed: rss 2.0
1 有用 larrylv 2020-11-14 13:29:49
CS本科知识。应该比较适合跨专业转CS的朋友,或者单纯对书名这个话题比较感兴趣的朋友。
0 有用 飞林沙 2015-08-02 04:18:00
也许书本身还可以,但是实在是太简单了……
3 有用 🌸曾兔园🌟 2018-04-19 17:24:04
非常努力地读完了~没有完全懂,大概就是明白了就是程序员写的代码要转成计算机语言读到计算机里去运行然后删掉,然后再进去再删掉……以及人工智能就是计算机记住超大量的例子和情况然后作出一种比较灵活的类似于人思考后的决策操作?(哎超胡说八道的我)
118 有用 沉淀 2019-05-24 16:45:59
结合《编码》这本书,我真正的搞明白了函数调用,是怎么回事了。《深入理解计算机系统》也正在阅读当中。我个人觉得先读《编码》,再读《程序是怎样运行的》,然后呢,系统的学一下王爽老师写的《汇编语言》。再深入的读一下《深入理解计算机系统》以及《程序员的自我修养》。作为一个主题,这样顺着会是一个比较好的顺序。
3 有用 不会游泳的鱼 2020-07-27 22:29:27
学过计算机组成原理、操作系统和简单的编程语言的同学可以通过这本书把整个体系梳理起来
0 有用 烛帽 2024-05-09 02:56:43 新疆
不能完全说出来但还是清晰了点
0 有用 Outsider 2024-03-28 11:31:28 上海
对于计算机非科班来说挺不错喔
0 有用 Bowser 2024-03-17 23:20:31 美国
《计算机组成与体系结构》课程补充阅读 虽然书的有些具体细节内容已经过时了(比如在Macintosh上运行Windows XP),但是最底层的细节是不会变的,所以本书作为一本入门科普书籍,仍然有其特殊的意义。 看完了以后对操作系统、编译、链接、汇编、硬件的理解更深了,我以前确实更多时候只会站在应用的层面考虑问题,不太注重系统实现。只能说系统工程师确实把系统抽象和封装的太好了,让人忽视了其细节,但是了... 《计算机组成与体系结构》课程补充阅读 虽然书的有些具体细节内容已经过时了(比如在Macintosh上运行Windows XP),但是最底层的细节是不会变的,所以本书作为一本入门科普书籍,仍然有其特殊的意义。 看完了以后对操作系统、编译、链接、汇编、硬件的理解更深了,我以前确实更多时候只会站在应用的层面考虑问题,不太注重系统实现。只能说系统工程师确实把系统抽象和封装的太好了,让人忽视了其细节,但是了解计算机底层的运行方式一定是有用的,程序员应该注重计算机素质的培养。 作为一个科班本科生,对书中提到的一些过程和概念竟然只有一个模糊的印象,没有细致的了解,实在是令人汗颜。这本书给我补充了不少基础内容的细节!如果更早读到这本书可能会更好 (展开)
1 有用 於 2024-02-23 12:50:55 河北
比《计算机是怎样跑起来的》写的更深入,因为计组我还不太熟悉,多数内容看的很懵,找时间补补计组
0 有用 靖修 2024-02-20 09:44:56 上海
微信听书(均非完全有声书),即可看原文。科普不错。