目录
前言
第1章 绪论 1
1.1 研究背景 1
1.2 研究内容 2
1.3 本书的组织结构 3
第2章 泛型约束相关研究 4
2.1 泛型程序设计 4
2.2 泛型程序设计及其约束的新定义 4
2.3 函数式语言泛型约束 5
2.3.1 System F 5
2.3.2 Haskell 98 6
2.3.3 ML 7
2.4 面向对象语言泛型约束 8
2.4.1 C++模板约束 8
2.4.2 Concepts概念约束 12
2.4.3 Java泛型约束 14
2.4.4 C#泛型约束 17
2.4.5 小结 19
2.5 泛型程序设计与面向对象程序设计的比较 19
第3章 Apla中的泛型机制 21
3.1 类型参数化 21
3.2 操作参数化 22
3.3 泛型Apla程序结构 22
3.3.1 单类型参数化 22
3.3.2 多类型参数化 23
3.4 Apla泛型过程结构 23
3.5 Apla泛型函数结构 24
3.6 泛型算法示例 25
第4章 泛型约束机制在Apla中的设计 29
4.1 操作约束定义 29
4.2 类型约束定义 31
4.2.1 传统数据类型约束 31
4.2.2 标准数据类型约束 34
4.2.3 代数结构泛型约束库 35
4.3 约束调用及例化 45
4.3.1 约束调用 45
4.3.2 约束例化 48
4.4 完整实例 51
4.4.1 泛型Kleene算法 51
4.4.2 泛型二分搜索算法 56
4.4.3 泛型Bellman-Ford算法 58
4.4.4 泛型极值类算法 59
4.4.5 泛型中缀表达式求值算法 60
第5章 约束匹配检测及验证 63
5.1 约束匹配检测 63
5.2 约束匹配验证 64
5.2.1 实例操作参数语义验证 64
5.2.2 实例类型参数语义验证 67
5.2.3 约束匹配验证实例 70
第6章 泛型约束机制在PAR平台C++生成系统中的实现 88
6.1 PAR平台C++生成系统 88
6.1.1 系统主要功能 88
6.1.2 主要功能模块 90
6.1.3 系统界面 92
6.1.4 规则库 94
6.2 泛型约束机制在PAR平台上的实现 95
6.2.1 形式类型参数检测 95
6.2.2 实例参数语法检测 95
6.2.3 实现实例 96
第7章 总结 99
参考文献 101