万本电子书0元读

万本电子书0元读

顶部广告

编程卓越之道(套装共3册)电子书

售       价:¥

12人正在读 | 0人评论 6.3

作       者:(美)兰德尔·海德(Randall Hyde)

出  版  社:电子工业出版社

出版时间:2023-03-01

字       数:74.3万

所属分类: 科技 > 计算机/网络 > 程序设计

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
卓越的代码需要利用现代编程语言的先进特性来实现软件功能。但软件*终都要运行在计算机 上,无论它是采用哪种编程语言编写的。因此,卓越的软件代码也要充分地利用计算机中的各种资源, 将计算机的性能发挥到*。现代编程语言将这些知识隐藏了起来,容易被我们忽视。 因此,《编程卓越之道》系列的*卷《深入理解计算机》将重点放在软件执行背后的计算机底 层上,深入浅出地介绍了计算机体系结构的方方面面,帮助我们理解如何才能写出在计算机上*运 行的代码。本书具体内容包括:数字、字符串及复合数据结构在计算机中的表示形式,以及如何在内 存层次结构中访问这些数据;基本的二进制运算、位运算、布尔逻辑,以及如何设计完成运算的中央 处理器指令集;输入/输出、大容量存储等丰富多彩的外设,以及把这些外设和计算机相连进行通信 的各种总线技术。 本书适合软/硬件开发人员及系统程序员、移动及嵌入式设备开发者、体系结构设计人员,以及 高校计算机相关专业师生。 本书介绍在使用高级语言编程时,程序员如何点点滴滴地提高程序运行效率,并在编写代码时,透彻 地理解变量、数组、字符串、数据结构、过程与函数等方面各种方案的优缺点,从而恰当运用。书中阐述 计算机编程语言在底层硬件上的工作原理,引入了一种被称为“高级汇编语言HLA”的学习工具。通过查 看、比较编译器生成的汇编语言或机器代码,程序员能够了解代码的底层实现,以便在高级语言编程时选 择*恰当的方式*地达到自身的目标。本书是一部提高程序员专业能力,以及通往编程大师之路的不可 多得的佳作。 本书适合高等学校学生在掌握基本编程能力后,在有志于从事软件行业并精于此道时修炼使用,也可 供已参加工作的程序员进一步研修、优化工作技能时参考。此外,对于有意向编写编译器的程序员,此书 可提供从普通应用到底层编译的衔接,便于他们学习初步的编译原理入门知识。 本书深入介绍了从开发方法、生产力到面向对象的设计需求和系统文档的方方面面。通过本书,你将 学习到:为什么遵循软件匠艺模型可以让你做到*好;如何利用可追溯性来加强文档的一致性;如何通过 用例分析来创建自己的UML 需求;如何利用IEEE 文档标准开发出更好的软件。 通过对高质量软件开发中技能、态度和道德方面的深入讲解,本书揭示了如何将工程原理应用于编程 的正确方法。在这个过程中,Hyde 不仅会教给你规则,还会告诉你什么时候该打破规则。他不仅会启发 你认识什么是*佳实践,同时还会让你发现适合自己的*佳实践。 本书中包含了大量的资源和示例,它是你编写代码的*指南,将让你从同行中脱颖而出。
目录展开

编程卓越之道(卷1)

内容简介

推荐序

推荐序2

译者序

关于作者

关于技术评审

致谢

1 编写卓越代码须知

1.1 《编程卓越之道》系列

1.2 本书涵盖的主题

1.3 阅读本书的前提

1.4 卓越代码的特征

1.5 本书要求的环境

1.6 额外建议

1.7 更多信息

2 数字表示

2.1 什么是数字

2.2 计数系统

2.3 数字/字符串转换

2.4 内部数字表示形式

2.5 有符号和无符号数

2.6 二进制数的属性

2.7 符号扩展、零扩展和收缩

2.8 饱和操作

2.9 二进制编码的十进制表示

2.10 定点表示形式

2.11 比例数字格式

2.12 有理数表示形式

2.13 更多信息

3 二进制算术运算和位运算

3.1 二进制和十六进制数字的算术运算

3.2 位的逻辑运算

3.3 二进制数值和位串的逻辑运算

3.4 有用的位运算

3.5 移位和旋转

3.6 位字段和打包数据

3.7 数据的打包和解包

3.8 更多信息

4 浮点表示形式

4.1 浮点运算简介

4.2 IEEE浮点格式

4.3 规约形式与非规约形式

4.4 舍入

4.5 特殊的浮点值

4.6 浮点数异常

4.7 浮点运算

4.8 更多信息

5 字符表示形式

5.1 字符数据

5.2 字符串

5.3 字符集数据类型

5.4 设计自定义字符集

5.5 更多信息

6 内存结构和访问

6.1 基本系统组件

6.2 内存的物理结构

6.3 大端序与小端序结构

6.4 系统时钟

6.5 CPU的内存访问模式

6.6 更多信息

7 复合数据类型与内存对象

7.1 指针类型

7.2 数组

7.3 记录/结构体

7.4 判别联合

7.5 类

7.6 C++类

7.7 Java类

7.8 Swift类

7.9 协议与接口

7.10 泛型和模板

7.11 更多信息

8 布尔逻辑与数字设计

8.1 布尔代数

8.2 布尔函数与真值表

8.3 函数编号

8.4 布尔表达式的代数运算

8.5 规范形式

8.6 布尔函数简化

8.7 这和计算机有什么关系

8.8 更多信息

9 CPU体系结构

9.1 CPU设计基础

9.2 指令的解码与执行:随机逻辑与微码

9.3 指令执行详解

9.4 RISC还是CISC:通过执行更多更快的指令来提高性能

9.5 提高处理速度的关键:并行

9.6 更多信息

10 指令集体系结构

10.1 指令集设计的重要性

10.2 指令设计的基本目标

10.3 假想处理器Y86

10.4 80x86指令编码

10.4.5 64位操作数编码

10.4.6 指令的替代编码

10.5 指令集设计对程序员的意义

10.6 更多信息

11 内存体系结构与组织

11.1 内存层次结构

11.2 内存层次结构的工作原理

11.3 内存子系统的性能差距

11.4 缓存体系结构

11.5 NUMA与外设

11.6 虚拟内存、内存保护与分页

11.7 编写理解内存层次结构的软件

11.8 运行时的内存结构

11.9 更多信息

12 输入与输出

12.1 连接CPU与外界

12.2 端口和系统连接的其他方式

12.3 输入/输出机制

12.4 输入/输出速度等级

12.5 系统总线与数据传输速率

12.6 缓冲

12.7 握手

12.8 I/O端口超时

12.9 中断与轮询式I/O

12.10 保护模式操作与设备驱动程序

12.11 更多信息

13 计算机外设总线

13.1 小型计算机系统接口

13.2 IDE/ATA接口

13.3 通用串行总线

13.4 更多信息

14 大容量存储设备与文件系统

14.1 磁盘驱动器

14.2 磁带驱动器

14.3 闪存

14.4 RAM盘

14.5 固态硬盘

14.6 混合硬盘

14.7 大容量存储设备上的文件系统

14.8 编写操作大容量存储设备数据的软件

14.9 更多信息

15 丰富多彩的输入/输出设备

15.1 探索特定PC上的外设

15.2 鼠标、触控板及其他定点设备

15.3 操纵杆与游戏控制器

15.4 声卡

15.5 更多信息

后记:运用底层语言思想,编写高级语言代码

编程卓越之道(卷2)

内容简介

译者序

人们对《编程卓越之道(卷2):运用底层语言思想编写高级语言代码》(第1版)的赞誉之辞

关于作者

关于技术审校者

致谢

引言

1 以底层语言思考,用高级语言编程

1.1 关于编译器质量的误区

1.2 最好还是学一学汇编语言

1.3 为何学习汇编语言并非绝对必要

1.4 以底层语言思考

1.5 编程用高级语言

1.6 不特定于某种语言的方法

1.7 附加提示

1.8 获取更多信息

2 要不要学汇编语言

2.1 学习汇编语言的好处与障碍

2.2 本书如何帮助你

2.3 向高层汇编器求援

2.4 高层汇编语言或汇编器(HLA)

2.5 以高级语言思考,用底层语言编程

2.6 汇编语言的编程范型—在底层思考

2.7 获取更多信息

3 高级语言程序员应具备的80x86汇编知识

3.1 学一种汇编语言很好,能学几种汇编语言更好

3.2 80x86汇编语言的语法

3.3 文字常量

3.4 汇编语言中的明示(符号)常量

3.5 80x86的寻址模式

3.6 汇编语言的数据声明

3.7 在汇编语言中指定操作数尺寸

3.8 获取更多信息

4 编译器的操作与代码生成

4.1 编程语言所用的文件类型

4.2 编程语言的源文件

4.3 计算机语言处理器的类型

4.4 转换过程

4.5 编译器的输出

4.6 目标文件的格式

4.7 可执行文件的格式

4.8 目标文件中的数据和代码对齐

4.9 链接器及其对代码的影响

4.10 获取更多信息

5 分析编译器输出的工具

5.1 背景知识

5.2 让编译器输出汇编语言文件

5.3 通过目标码工具分析编译器的输出

5.4 通过反汇编程序分析编译器的输出

5.5 使用Java字节码反汇编程序分析Java的输出

5.6 使用IL反汇编程序分析微软C#和Visual Basic的输出

5.7 通过调试器分析编译器的输出

5.8 比对两次编译的输出

5.9 获取更多信息

6 常量与高级语言

6.1 文字常量与程序效率

6.2 绑定时刻

6.3 文字常量与明示常量的比较

6.4 常量表达式

6.5 明示常量与只读内存数据的比较

6.6 Swift的let语句

6.7 枚举类型

6.8 布尔常量

6.9 浮点数常量

6.10 字符串常量

6.11 复合数据类型的常量

6.12 常量值不会变化

6.13 获取更多信息

7 变量

7.1 运行时期的内存组织

7.2 变量是什么

7.3 变量的存储

7.4 常见的基本数据类型

7.5 变量地址与高级语言

7.6 内存中的变量对齐

7.7 获取更多信息

8 数组

8.1 何谓数组

8.2 获取更多信息

9 指针

9.1 指针的定义

9.2 高级语言的指针实现

9.3 指针与动态内存分配

9.4 指针操作与指针算术运算

9.5 内存分配的简单示例

9.6 垃圾收集

9.7 操作系统与内存分配

9.8 堆内存的开销

9.9 常见的指针问题

9.10 现代编程语言中的指针

9.11 托管指针

9.12 获取更多信息

10 字符串

10.1 字符串格式

10.2 静态字符串、伪动态字符串和动态字符串

10.3 字符串的引用计数

10.4 Delphi字符串格式

10.5 在高级语言中使用字符串

10.6 字符串中的Unicode字符数据

10.7 Unicode字符串函数和性能

10.8 获取更多信息

11 记录、联合和类

11.1 记录

11.2 判别式联合

11.3 变数类型

11.4 命名空间

11.5 类与对象

11.6 协议与接口

11.7 类、对象和性能

11.8 获取更多信息

12 算术与逻辑表达式

12.1 算术表达式与计算机架构

12.2 算术语句的优化

12.3 算术表达式的副作用

12.4 包含副作用:序列点

12.5 避免让副作用造成麻烦

12.6 强制按特定顺序计算

12.7 短路求值

12.8 算术运算的相对开销

12.9 获取更多信息

13 控制结构与程序判定

13.1 控制结构如何影响程序效率

13.2 底层控制结构入门

13.3 goto语句

13.4 if语句

13.5 switch/case语句

13.6 获取更多信息

14 迭代控制结构

14.1 while循环

14.2 repeat..until(do..until/do..while)式的循环

14.3 forever..endfor式的循环

14.4 定次的for循环

14.5 获取更多信息

15 函数与过程

15.1 简单的函数与过程调用

15.2 叶函数/叶过程

15.3 宏和内联函数

15.4 向函数/过程传递参数

15.5 活动记录和栈

15.6 参数传递机制

15.7 函数返回值

15.8 获取更多信息

后记:软件工程学

词汇表

网上附录

编程卓越之道(卷3)

内容简介

推荐序1

推荐序2

推荐语

前言

第1部分 个人软件工程

1 软件开发的比喻

2 生产力

3 软件开发模型

第2部分 UML

4 UML和用例介绍

5 UML活动图

6 UML类图

7 UML交互图

8 其他UML图

第3部分 文档

9 系统文档

10 需求文档

11 软件设计描述文档

12 软件测试文档

后记:如何设计卓越的代码

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部