《C语言接口与实现:创建可重用软件的技术》,原名《C Interfaces and Implementations:Techniques for Creating Reusable Software》,作者:【美】David R.Hanson,翻译:傅蓉 周鹏 张昆琪 权威,出版社:机械工业出版社,ISBN:7111130057,PDF 格式,大小 10MB。
内容简介:
本书概念清晰、内容新颖、实例详尽,是一本有关设计、实现和有效使用c语言库函数,掌握创建可重用c语言软件模块技术的参考指南。本书倡导基于接口的c语言设计理念及其实现技术,深入详细地描述了24个c语言接口及其实现。
本书通过叙述如何用一种与语言无关的方法将接口的设计与实现独立开来,从而形成一种基于接口的设计途径来创建可重用的api,本书是一本针对 c语言程序员的不可多得的好书,也是值得所有希望掌握可重用软件模块技术的读者阅读的参考书籍。
关于如何设计、实现和有效使用库函数的指南少之又少(如果说还有的话)。这本力作填补了这 个空白。它可以作为下一代软件的工具书.所有的c语言程序员都应该阅读。
——w.richard stevens
“我向每位专业c语言程序员推荐这本书。c语言程序员们忽视书中所描述的各种技术已经太长时 间了。”
——norman ramsey,贝尔实验室研究员 每一位程序员和软件项目经理必须掌握创建可重用软件模块的技术:可重用软件模块是 构建大规模、可靠应用的基石。与当前某些面向对象语言不同,c语言为创建可重用应用程 序接口(application programming interface,api)提供的语言和功能支持非常少。尽管大多 数c语言程序员在自己所编写的每一个应用程序中都使用api和实现api的库.但只有相当少 的程序员可以创建和发布新的、可广泛使用的api。本书阐述了如何用一种与语言无关的方 法将接口的设计与实现独立开来,从而形成一种基于接口的设计途径来创建可重用的api。 书中提供大量实例具体说明这种方法。作者详细描述了24个接口和它们的实现细节,有助于 读者对这种设计方法的透彻理解。
本书具有如下特色:
简洁明了的接口描述。为对接口设计感兴趣的程序员提供了一个参考手册
每一章接口的代码实现分析将帮助读者修改、扩充一个接口,或者设计相关接口
深入探讨了“算法工程”:阐述如何将数据结构以及相关算法打包到可重用模块中
24个api和8个实例程序的源代码都经过测试检查,每个程序都是按照”literate程序”的形 式构成。为源代码提供了全面完整的解释
提供了非常少见的有关c语言编程技巧的文档记录
可以方便地在http://www.cs.princeton.edu/software/cii/访问本书的所有源码
目录:
出版者的话
专家指导委员会
译者序
前言
第1章 简介 1
1.1 literate程序 2
1.2 编程风格 6
1.3 效率 7
参考书目浅析 9
练习 9
第2章 接口与实现 11
2.1 接口 11
2.2 实现 13
2.3 抽象数据类型 15
2.4 客户调用程序的责任 17
2.5 效率 21
参考书目浅析 21
练习 22
第3章 原子 25
3.1 接口 25
.3.2 实现 26
参考书目浅析 31
练习 31
第4章 异常与断言 33
4.1 接口 34
4.2 实现 38
4.3 断言 43
参考书目浅析 46
练习 46
第5章 内存管理 49
5.1 接口 50
5.2 产品级实现 53
5.3 校验实现 55
参考书目浅析 62
练习 62
第6章 进一步内存管理 65
6.1 接口 65
6.2 实现 67
参考书目浅析 72
练习 73
第7章 链表 75
7.1 接口 75
7.2 实现 78
参考书目浅析 83
练习 83
第8章 表格 85
8.1 接口 85
8.2 例子:单词频率 87
8.3 实现 92
参考书目浅析 98
练习 98
第9章 集合 101
9.1 接口 101
9.2 实例:交叉引用列表 103
9.3 实现 109
9.3.1 成员操作 110
9.3.2 集合操作 113
参考书目浅析 116
练习 116
第10章 动态数组 119
10.1 接口 119
10.2 实现 122
参考书目浅析 124
练习 125
第11章 序列 127
11.1 接口 127
11.2 实现 128
参考书目浅析 133
练习 133
第12章 环 135
12.1 接口 135
12.2 实现 137
参考书目浅析 144
练习 144
第13章 位向量 147
13.1 接口 147
13.2 实现 149
13.2.1 成员操作 150
13.2.2 比较 154
13.2.3 集合操作 155
参考书目浅析 157
练习 157
第14章 格式化 159
14.1 接口 159
14.1.1 格式化函数 160
14.1.2 转换函数 162
14.2 实现 165
14.2.1 格式化函数 165
14.2.2 转换函数 171
参考书目浅析 175
练习 176
第15章 低级字符串 177
15.1 接口 178
15.2 例子:打印标识符 183
15.3 实现 183
15.3.1 字符串操作 185
15.3.2 分析字符串 189
15.3.3 转换函数 193
参考书目浅析 193
练习 194
第16章 高级字符串 197
16.1 接口 197
16.2 实现 202
16.2.1 字符串操作 205
16.2.2 内存管理 208
16.2.3 分析字符串 210
16.2.4 转换函数 214
参考书目浅析 214
练习 215
第17章 扩展精度算法 217
17.1 接口 217
17.2 实现 221
17.2.1 加法和减法 222
17.2.2 乘法 224
17.2.3 除法和比较 225
17.2.4 移位 230
17.2.5 字符串转换 232
参考书目浅析 234
练习 234
第18章 任意精度算法 237
18.1 接口 237
18.2 示例:一个计算器 240
18.3 实现 245
18.3.1 取反和乘法 247
18.3.2 加法和减法 248
18.3.3 除法 250
18.3.4 求幂 252
18.3.5 比较 253
18.3.6 简易函数 254
18.3.7 移位 255
18.3.8 字符串和整数转换 256
参考书目浅析 259
练习 259
第19章 多精度算法 261
19.1 接口 261
19.2 示例:另一计算器 266
19.3 实现 272
19.3.1 转换 276
19.3.2 无符号算法 278
19.3.3 有符号算法 280
19.3.4 简易函数 283
19.3.5 比较和逻辑操作 288
19.3.6 字符串转换 291
参考书目浅析 293
练习 293
第20章 线程 295
20.1 接口 297
20.1.1 thread 297
20.1.2 一般信号量 300
20.1.3 同步通信通道 302
20.2 示例 303
20.2.1 并行排序 303
20.2.2 临界区 307
20.2.3 生成素数 309
20.3 实现 312
20.3.1 同步通信通道 312
20.3.2 线程 314
20.3.3 线程创建与上下文转换 322
20.3.4 抢占 328
20.3.5 一般信号量 330
20.3.6 mips和alpha上的上下文转换 331
参考书目浅析 335
练习 336
附录 接口概要 339
参考书目 361
索引 367