1—1 一个简单的Ada程序 2
第一章 引论 2
1—2 Ada基本说明 4
一、Ada的字符集 4
二、Ada的词法单元 5
三、数值直接量 5
四、字符直接量和字符串 6
五、限制符 7
1—3 类型和目标说明 7
一、类型说明 7
二、目标说明 8
二、枚举类型 9
1—4 标量类型 9
一、整型 9
三、离散类型的属性 10
四、字符型和布尔型 11
五、实型 11
1—5 组合数据类型 14
一、数组 15
二、记录 20
1—6 表达式和操作符说明 23
一、表达式之例 24
二、操作符的说明 24
三、条件语句 27
二、空语句 27
1—7 语句 27
一、赋值语句 27
四、case选择语句 28
五、循环语句 29
六、出口语句 31
七、无条件转移语句 32
八、返回语句 33
九、块结构 33
习题 34
2—1 子程序组成 36
一、子程序说明 36
第二章 子程序 36
二、子程序体 37
三、形式参数 38
四、子程序举例 39
2—2 子程序调用 41
一、实现对数据交换子程序的调用 41
二、实现对函数SQRT的调用 42
三、实现对函数重载操作符的调用 43
2—3 子程序重载 44
2—4 可见性规则 45
一、实体的作用域 45
二、实体的可见性 46
2—5 重命名实体 49
一、程序包的换名 49
二、子程序的换名 50
2—6 举例 50
一、八皇后问题 50
二、求分类数组中的最频值 55
三、汉诺(HANOI)塔问题 57
四、数组的快速分类算法 58
五、矩阵乘法 60
习题 62
3—1 引言 63
第三章 输入和输出 63
3—2 直接文件和顺序文件 64
一、对直接和顺序文件的存取 64
二、对直接和顺序文件的操作命令 66
三、文件操作中的异常 68
四、举例 69
3—3 正文文件 70
一、缺省文件的输入输出 71
二、控制打印格式 72
三、对正文文件的存取 77
四、交互式输入 78
五、正文文件输入输出示例 78
习题 82
4—1 关于强类型 84
4—2 子类型 84
第四章 对类型的进一步说明 84
4—3 派生类型 86
4—4 类型转换 87
4—5 存取类型 88
一、存取类型说明 88
二、变量的动态分配 89
三、动态分配变量的命名 91
四、存取类型的作用 92
五、存取类型和索引限制 98
一、带有判别式的记录类型 99
4—6 记录类型 99
二、变体记录 101
4—7 举例 103
一、用变体记录类型计算几何图形的面积 103
二、打印二叉树的值 104
习题 105
第五章 程序包 107
5—1 引言 107
5—2 程序包说明 107
5—3 程序包体 109
5—4 私有类型 111
一、符号表管理程序包 120
5—5 举例 120
二、优先级队列管理程序包 125
习题 129
第六章 独立编译 131
6—1 引言 131
6—2 程序库 132
6—3 编译单元和编译 133
6—4 子单元(SUBUNIT) 134
6—5 编译顺序 142
6—6 重新编译 143
习题 143
7—1 引言 148
第七章 异常处理 148
7—2 异常说明和异常处理 149
一、异常说明 149
二、异常处理程序 149
7—3 系统预定义的异常 152
7—4 引发异常的语句 153
7—5 异常处理程序的激活和异常传播 154
一、在处理说明期间引发异常 154
二、在语句执行期间引发异常 154
三、异常处理举例 155
7—6 再现引发异常的操作 156
7—7 抑制异常检查 157
7—8 异常处理举例 161
一、阶乘 161
二、化简公式 161
三、文件合并 162
习题 165
第八章 任务 167
8—1 引言 167
8—2 任务和会合 168
8—3 任务描述与任务体 169
8—4 接收入口调用语句 170
一、任务类型 174
8—5 任务类型和任务目标 174
二、动态分配的任务 175
8—6 任务的激活与终止 176
一、任务的激活 176
二、任务的终止 177
8—7 延时语句和停止语句 178
一、延时语句 178
二、停止语句 178
8—8 选择语句 178
一、选择等待语句 179
二、条件入口调用语句 181
三、定时入口调用语句 181
8—9 互斥 183
8—10 任务的入口族 184
8—11 异常结束语句 186
8—12 中断 187
8—13 任务优先级 187
8—14 任务和入口的属性 188
8—15 任务和异常 188
8—16 举例 189
一、用Ada任务实现信号 189
二、信号灯 190
三、任务调度控制 191
四、最短作业优先调度 193
五、哲学家进餐问题 194
六、电梯控制 198
七、核反应堆控制 210
习题 213
第九章 通用单元 215
9—1 引言 215
9—2 通用单元说明和体 217
9—3 通用形参说明及匹配规则 220
一、通用类型的参数 220
二、通用子程序参数 221
9—4 举例 223
一、求指定元素的第N个后继元素 223
二、堆栈 224
三、通用插入分类过程 225
四、梯形积分法 227
五、集合 229
习题 231
第十章 低级程序设计 234
10—1 引言 234
10—2 系统特性的改变 236
10—3 表示属性和表示子句 237
一、表示属性 237
二、表示子句 239
10—4 与其它语言接口 248
一、编用INTERFACE 248
二、输入输出编用 250
三、插入机器代码 255
10—5 不检查地回收存贮区 256
10—6 不经检查的类型转换 256
10—7 举例 257
一、打字机的输入输出 258
二、存贮分配程序 261
习题 263
附录1 预定义的语言属性 265
附录2 预定义的语言编用 272
附录3 预定义的语言环境 278
附录4 预定义的程序包CALENDAR 292
附录5 VAX机上的SYSTEM程序包 294
参考文献 299