为你推荐
编程卓越之道(卷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 软件测试文档
后记:如何设计卓越的代码
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜