目 录 1
第一章绪论 1
§1程序设计的作用和起源 1
§2程序设计语言的演变 1
§3“模块”概念 3
§4词法、语法和语义分析 4
§5 MODULA-2词 4
汇表 4
§6语法图 6
§7 MODULA-2程 8
序结构 8
§8第一个程序:怎样输出(Write)……字符串 9
§9编写程序的基本考虑 10
第二章数 12
§1整数和实数 12
§2运算符 12
§3 Mathlib0模块 14
§4算术表达式 15
§5数的输出 18
§6程序举例 19
第三章常量、变量和数据类型 22
§1常量 22
§2变量和数据类型 23
§3 INTEGER、CARDINAL和REAL类型 24
§4赋值语句 25
§5类型转换 27
§6一个例子:两个值的交换 30
第四章布尔类型和字符类型 32
§1布尔常数和布尔运算 32
§2布尔表达式 33
§3关系运算符 35
§4两个程序示例 39
§5字符类型 42
§1 IF语句 48
第五章基本控制语句 48
§2 WHILE语句 53
§3 REPEAT语句 58
§4程序举例 63
第六章输入/输出模块 66
§1读操作的作用 66
§2正文输入 70
§3 InOut和RalInOut模块 73
§4程序举例 75
第七章枚举和子界类型 80
§1枚举类型 80
§2枚举类型中的次序 83
§3子界类型 86
§4程序举例 88
第八章其他控制语句 91
§1 LOOP语句 91
§2 FOR语句 95
§3 CASE语句 100
§4程序举例 105
第九章数组类型 110
§1一维数组 110
§2程序举例 115
§3字符串类型 118
§4程序举例:回文 122
§5多维数组 124
§6程序举例 126
§1过程的概念 131
第十章过程和局部性 131
§2局部性 140
§3参数 148
§4程序举例 153
第十一章参数的传递和作用域 159
§1变量和值参数 159
§2开型数组参数 163
§3作用域规则 166
§1 函数过程的概念 172
第十二章函数过程和过程类型 172
§2 一个完整的例子 179
§3 过程类型 180
§4 一个完整的例子 186
第十三章递归 189
§1 递归的概念 189
§2 Hanoi塔 191
§3 快速排序和排列 196
§4 间接递归和逐级递归 201
第十四章模块 207
§1 模块的概念 207
§2 定义模块 209
§3 实现模块 211
§4 独立编译 213
§5 一个完整的例子:栈 214
§1 局部模块的概念 219
第十五章局部模块 219
§2 移入/移出表 221
§3 作用域规则 222
§4 并排定义的局部模块 225
§5 局部于一个过程定义的模块 226
§6 一个完整的例子 228
第十六章记录 235
§1 记录类型 235
§2 记录与字段的处理 238
§3 WITH语句 242
§4 数据抽象的一个例子:多栈的用法 244
§5 具有变体部分的记录 249
第十七章集合 256
§1 SET类型与BITSET类型 256
§2 集合常量与集合变量 257
§3 集合运算符 260
§4 标准过程INCL和EXCL 264
§5 用于处理位集合模块的一个例子 266
§1 流的概念 272
第十八章流 272
§2 流的元素的存取 273
§3 文本流 274
§4 程序举例:黑体文本 276
第十九章动态数据结构 281
§1 指针 281
§2 动态分配 282
§3 表 286
§4 具有局部模块表处理的完整例子 292
§5 栈和先进先出队列:两个表处理模块 298
§6 二叉树 302
第二十章进程 314
§1 并发性 314
§2 进程 315
§3 管理 316
§4 信号 317
§5 一个经典问题——缓冲器共享 319
§1 为什么进行低级程序设计? 323
第二十一章低级特征 323
§2 类型WORD 324
§3 类型ADDRESS 328
§4 类型转换函数 329
§5 协同程序 331
§6 协同程序的一个应用 333
§7 动态存储 335
§8 设备处理、中断与固定地址 336
§9 低级文件操作 339
§10类属模块 344
参考文献 347
附录1 MODULA-2的语法 348
1.扩充巴科斯-诺尔范式 348
2.语法图 352
附录2关键字和标准标识符 368
1.关键字 368
2.特殊字符 368
3.标准标识符 368