程序是怎样跑起来的(第3版)

程序是怎样跑起来的(第3版)

立即阅读
手机扫码
  • 微信扫一扫

    关注微信公众号

编辑推荐

一本书帮你了解从用户双击程序图标到程序开始运行之间到底发生了什么。

内容简介

本书从计算机的内部结构开始讲起,以图配文的形式详细讲解了二进制、内存、数据压缩、源文件和可执行文件、操作系统和应用程序的关系、汇编语言、硬件控制方法等内容。书中还专设了“如果是你,你会怎样讲呢?”专栏,以小学生、老奶奶等为对象讲解程序的运行原理,颇为有趣。

第3版升级了书中用到的软件产品和开发工具,并在正文和注释中补充了大量内容,让初学者更容易理解。对于旧版中颇受好评的硬件相关章节,更新了C语言的样例代码。书末附录关于C语言的章节也升级至最新标准。

第12章新增了Python机器学习的内容,让初学者能够轻松体验人工智能的乐趣。附录也增加了对Python语言的介绍。本书图文并茂,通俗易懂,非常适合计算机爱好者及相关从业人员阅读。

作者简介

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

章节目录

版权信息

译者序

前言

程序是怎样跑起来的

本书的结构

第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的补码”

2.5 逻辑右移与算术右移的区别

2.6 掌握逻辑运算的窍门

第3章 计算机在计算小数时会出错的原因

3.1 将0.1累加100次的结果不是10

3.2 如何用二进制表示小数

3.3 计算机计算出错的原因

3.4 什么是浮点数

3.5 规格化表示法与移码表示法

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 节约内存的编程技巧

5.6 了解一下磁盘的物理结构

第6章 自己动手压缩数据

6.1 文件是以字节为单位记录的

6.2 游程编码的原理

6.3 游程编码的缺点

6.4 从莫尔斯码中发现哈夫曼算法的基础

6.5 使用树来构建哈夫曼编码

6.6 通过哈夫曼算法大幅提高压缩效率

6.7 无损压缩与有损压缩

第7章 程序在怎样的环境下运行

7.1 运行环境=操作系统+硬件

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

7.3 每种操作系统的API都是不同的

7.4 使用源代码进行安装

7.5 在任何地方都能提供相同运行环境的Java虚拟机

7.6 云计算平台提供的虚拟运行环境

7.7 BIOS与引导装入程序

第8章 从源文件到可执行文件

8.1 计算机只能执行本机代码

8.2 看一看本机代码的内容

8.3 编译器负责翻译源代码

8.4 仅靠编译无法得到可执行文件

8.5 启动代码与库文件

8.6 DLL文件与导入库

8.7 运行可执行文件需要什么

8.8 加载时生成的栈和堆

8.9 进阶问答

第9章 操作系统与应用程序的关系

9.1 从历史发展看操作系统的功能

9.2 关注操作系统的存在

9.3 系统调用与高级编程语言的可移植性

9.4 操作系统和高级编程语言对硬件进行了抽象化

9.5 Windows操作系统的特点

第10章 通过汇编语言认识程序的真面目

10.1 汇编语言和本机代码是一一对应的

10.2 用C编译器输出汇编语言源代码

10.3 伪指令与注释

10.4 汇编语言的语法是“操作码 操作数”

10.5 最常用的movl指令

10.6 将数据存入栈中

10.7 函数调用的工作原理

10.8 被调用函数的工作原理

10.9 全局变量和局部变量的工作原理

10.10 循环的工作原理

10.11 条件分支的工作原理

10.12 体验汇编语言的意义

第11章 访问硬件的方法

11.1 应用程序是否与硬件有关

11.2 负责硬件输入输出的in指令和out指令

11.3 外部设备的中断请求

11.4 通过中断实现实时处理

11.5 能够快速传输大量数据的DMA

11.6 显示字符和图像的原理

第12章 如何让计算机“学习”

12.1 什么是机器学习

12.2 支持向量机

12.3 Python交互模式的使用方法

12.4 准备学习数据

12.5 查看手写数字数据的内容

12.6 通过机器学习识别手写数字

12.7 尝试交叉验证

附录1 亲手尝试C语言

C语言的特点

变量与函数

数据类型

输入、运算、输出

创建和使用函数

局部变量与全局变量

数组与循环

其他语法

附录2 亲手尝试Python

Python的特点

一切皆对象

数据类型

输入、运算、输出

创建和使用函数

局部变量与全局变量

数组与循环

其他语法

后记

致谢

程序是怎样跑起来的(第3版)是2022年由人民邮电出版社出版,作者[日] 矢泽久雄。

得书感谢您对《程序是怎样跑起来的(第3版)》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

你可能喜欢
微信小程序开发实战(第2版) 电子书
本书是针对Web前端开发人员编写的一本快速掌握微信小程序开发的教程。本书通过通俗易懂的语言、丰富实用的案例,讲解微信小程序的开发技术。本书共8章,第1章讲解微信小程序的入门知识,介绍微信小程序的特点和发展前景;第2章和第3章分别讲解微信小程序的页面制作和页面交互;第4章和第5章讲解微信小程序的常用API;第6章讲解综合项目“点餐”微信小程序;第7章讲解微信小程序开发进阶;第8章讲解基于uni-ap
C语言程序设计:现代方法(第2版·修订版) 电子书
C语言入门零基础自学教程新升级,增加C1X相关内容,讲述C的所有特性,国外诸多名校的C语言课程教材,C开发人员的参考书。
透视C#核心技术:系统架构及移动端开发 电子书
本书采用循序渐进的方式讲解C#及其在电商、ERP及手机APP方面的开发技术。
Python 3 程序设计 电子书
本书以通俗易懂的语言、翔实的示例、新颖的内容诠释了Python这门“简单”“优雅”“易学”的计算机语言。全书共14章,第1章~第10章介绍了Python语言基础,覆盖了全国计算机等级考试Python语言的主要内容;第11章和第12章介绍了Python语言的应用,包括图形用户界面、数据库编程等内容:第13章和第14章介绍了Python第三方库的应用。本书内容以应用为核心展开,力求以知识的最小集来实现
Python基础教程(第3版) 电子书
手把手带你从零开始学习Python。