为你推荐
内容简介
译者序
人们对《编程卓越之道(卷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 获取更多信息
后记:软件工程学
词汇表
网上附录
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜