注重体验与质量的电子书资源下载网站
分类于: 设计 云计算&大数据
简介
C++语义和性能分析 豆 0.0分
资源最后更新于 2020-11-05 12:20:14
作者:杨镰
出版社:华中科技大学出版社
出版日期:2017-01
ISBN:9787568033299
文件格式: pdf
标签: C++ 计算机 Programming 语义 编程 类型 变量 优化
简介· · · · · ·
"本书从C++的发展历史、类型系统、语义以及性能的视角,给读者展现了C++语言的基本理念和发展主线。一方面用抽象的理论框架,比如集合论、有限自动机、类型和类型系统等诠释了C++的理论方面;另一方面又从语义着手,从底层操作剖析了C++的实现方法。使读者既能站得高、看得远,又能把握C++的实质,从而全面掌握C++语言。
本书作者有20多年的C++开发经验,在微软总部工作期间,用C++参与开发过包括Windows XP系统在内的许多知名商用软件系统,在C++语言上有着深厚的功底。在本书作者看来,理解C++的精髓和灵魂,必须从C++类型系统着手,这样才能写出性能优异而又易于维护的系统。另外,从C++11到C++17的最新构造,都没有脱离C++类型系统的主体思想。熟读本书可以作为学习C++17的前奏。"
目录
" 第1章 C++简史 1
1.1 C++ 的历史背景 1
1.2 C++大事记 5
1.2.1 1979年:C with classes诞生 5
1.2.2 1983年8月:C++正式命名 6
1.2.3 1986年:《The C++ Programming Language》出版 7
1.2.4 1987年:C++2.0发布 7
1.2.5 1990年:《The Annotated C++ Reference Manual》出版 8
1.2.6 1994年:STL诞生 8
1.2.7 1998年:ISO C++ 正式通过 9
1.2.8 2011年:C++11颁布 9
1.3 C++的进化和改进理念 10
1.4 C++的历史贡献及未来 11
第2章 程序设计语言的语义 14
2.1 哲学基础 14
2.2 语义的形式化描述 14
2.3 操作性语义 16
2.4 语义描述涉及的主要元素 17
第3章 C++类型系统 19
3.1 类型系统简介 19
3.2 数据类型的表达规则 21
3.2.1 基本数据类型的表达规则 22
3.2.2 用户自定义类型的表达规则 23
3.3 类型实例的构造规则 25
3.3.1 类型和类型实例 25
3.3.2 类型实例的构造和析构 27
3.4 类型的操作规则 33
3.4.1 context 33
3.4.2 函数 34
3.4.3 过程 35
3.4.4 过程函数 35
3.4.5 方法 36
3.4.6 特别讨论:过程方法的自动机诠释 37
3.4.7 运算符 38
3.5 C++类型系统的特征 39
3.5.1 特征 1:支持OOP 39
3.5.2 特征2:强静态类型 40
3.5.3 特征3:UDT是一等公民 41
3.5.4 特征4:类型清除 45
3.5.5 特征5:支持模板 49
3.5.6 特征6:指针和REF 53
3.5.7 特征7:类型修正符 60
3.6 其他(非C++)类型系统 62
3.7 类型系统的意义和用途 62
3.7.1 程序的精确性保障 62
3.7.2 性能的可保障性 64
第4章 C++变量语义 66
4.1 变量简介 66
4.2 C++变量的属性 68
4.2.1 C++变量的存储属性 68
4.2.2 C++ 变量的值语义 95
4.2.3 C++变量的自洽性 106
4.2.4 C++变量的总分性 109
4.2.5 C++变量的多态性 112
4.3 临时变量 113
第5章 C++对OOP的支持 116
5.1 object的内存布局 117
5.2 继承 119
5.2.1 继承object的内存布局 123
5.2.2 多继承 128
5.2.3 继承类object的语义规则 130
5.3 多态类和多态变量 137
5.4 C++对抽象的支持 139
第6章 C++ 性能分析 141
6.1 性能分析原理 141
6.2 算法的重要性 149
6.3 RAM内存读取的性能 153
6.3.1 单线程heap管理器 154
6.3.2 定制化heap管理系统 157
6.4 关于缓存 164
6.5 关于I/O 175
6.6 C++的特殊性能问题 176
6.6.1 临时变量的性能问题 176
6.6.2 STL 容器 180
6.6.3 Type Erasure 185
6.6.4 异常处理 187
6.6.5 继承的性能问题 194
6.6.6 直接函数、间接函数、内联函数 200
参考文献 204
"
1.1 C++ 的历史背景 1
1.2 C++大事记 5
1.2.1 1979年:C with classes诞生 5
1.2.2 1983年8月:C++正式命名 6
1.2.3 1986年:《The C++ Programming Language》出版 7
1.2.4 1987年:C++2.0发布 7
1.2.5 1990年:《The Annotated C++ Reference Manual》出版 8
1.2.6 1994年:STL诞生 8
1.2.7 1998年:ISO C++ 正式通过 9
1.2.8 2011年:C++11颁布 9
1.3 C++的进化和改进理念 10
1.4 C++的历史贡献及未来 11
第2章 程序设计语言的语义 14
2.1 哲学基础 14
2.2 语义的形式化描述 14
2.3 操作性语义 16
2.4 语义描述涉及的主要元素 17
第3章 C++类型系统 19
3.1 类型系统简介 19
3.2 数据类型的表达规则 21
3.2.1 基本数据类型的表达规则 22
3.2.2 用户自定义类型的表达规则 23
3.3 类型实例的构造规则 25
3.3.1 类型和类型实例 25
3.3.2 类型实例的构造和析构 27
3.4 类型的操作规则 33
3.4.1 context 33
3.4.2 函数 34
3.4.3 过程 35
3.4.4 过程函数 35
3.4.5 方法 36
3.4.6 特别讨论:过程方法的自动机诠释 37
3.4.7 运算符 38
3.5 C++类型系统的特征 39
3.5.1 特征 1:支持OOP 39
3.5.2 特征2:强静态类型 40
3.5.3 特征3:UDT是一等公民 41
3.5.4 特征4:类型清除 45
3.5.5 特征5:支持模板 49
3.5.6 特征6:指针和REF 53
3.5.7 特征7:类型修正符 60
3.6 其他(非C++)类型系统 62
3.7 类型系统的意义和用途 62
3.7.1 程序的精确性保障 62
3.7.2 性能的可保障性 64
第4章 C++变量语义 66
4.1 变量简介 66
4.2 C++变量的属性 68
4.2.1 C++变量的存储属性 68
4.2.2 C++ 变量的值语义 95
4.2.3 C++变量的自洽性 106
4.2.4 C++变量的总分性 109
4.2.5 C++变量的多态性 112
4.3 临时变量 113
第5章 C++对OOP的支持 116
5.1 object的内存布局 117
5.2 继承 119
5.2.1 继承object的内存布局 123
5.2.2 多继承 128
5.2.3 继承类object的语义规则 130
5.3 多态类和多态变量 137
5.4 C++对抽象的支持 139
第6章 C++ 性能分析 141
6.1 性能分析原理 141
6.2 算法的重要性 149
6.3 RAM内存读取的性能 153
6.3.1 单线程heap管理器 154
6.3.2 定制化heap管理系统 157
6.4 关于缓存 164
6.5 关于I/O 175
6.6 C++的特殊性能问题 176
6.6.1 临时变量的性能问题 176
6.6.2 STL 容器 180
6.6.3 Type Erasure 185
6.6.4 异常处理 187
6.6.5 继承的性能问题 194
6.6.6 直接函数、间接函数、内联函数 200
参考文献 204
"