第一部分 PROLOG程序设计基础 2
第一章 概述 2
1.1 PROLOG语言的发展 2
1.2 PROLOG语言的特点 3
1.3 PROLOG程序 5
习题 15
第二章 PROLOG语言的语法 17
2.1 字符集 17
2.2 数 17
2.3 常量 18
2.4 变量 19
2.5 表 19
2.6 原子 21
2.7 短句 23
习题 28
第三章 PROLOG程序的执行过程 29
3.1 一致化匹配 29
3.2 简单程序的执行过程 40
3.3 一般程序的执行过程 55
3.4 搜索空间树 68
习题 82
第四章 控制机制cut 85
4.1 “/”的作用域及其作用 85
4.2 “/”的一般用法 93
4.2.1 “/”用于分情况选择 94
4.2.2 “/”与fail联用 97
4.2.3 终止产生与测试 100
4.3 “/”的副作用 102
习题 107
第五章 内部谓词 112
5.1 控制台I/O 112
5.2 文件操作 114
5.3 算术运算 123
5.4 类型判别 124
5.5 比较 126
5.6 程序库操作 127
5.7 逻辑运算 130
5.8 其它内部谓词 133
习题 134
第二部分 程序设计方法与技巧 136
第六章 程序设计方法及举例 136
6.1 递归与表处理 136
6.2 自顶到底的程序设计 152
6.3 集合运算 156
6.4 从思想到程序 160
6.5 走迷宫 167
6.6 产生完全数 173
习题 177
第七章 PROLOG自身机制的利用 182
7.1 模式匹配的利用 182
7.2 回溯机制的利用 187
7.3 “/”控制技术 189
习题 197
第八章 尾递归和数据的表示 202
8.1 尾递归 202
8.1.1 尾递归的几种具体形式 203
8.1.2 将非尾递归改为尾递归 204
8.1.3 半尾递归 209
8.2 数据结构的选择 211
8.3 多维结构的表示 219
8.4 全局变量的表示 228
习题 232
第九章 元级程序设计 235
9.1 一般的元级解释器的实现 235
9.1.1 简单元级解释器的实现 236
9.1.2 完整元级解释器的实现 238
9.2 采用广度优先搜索策略的元级解释器的实现 240
9.3 产生证明树的元级解释器的实现 245
9.4 用于调试的元级解释器的实现 247
9.4.1 跟踪执行过程的元级解释器 248
9.4.2 非正常自动终止的元级解释器 249
9.5 用于专家系统的元级解释器的实现 251
9.5.1 具有“why”解释的专家系统工具的实现 252
9.5.2 具有“how”解释的专家系统工具的实现 255
9.6 使用不精确推理的元级解释器的实现 258
习题 260
第十章 关于效率问题 262
10.1 提高效率的一般性原则 262
10.2 缩小选择空间 266
10.3 一些改进效率的例子 271
习题 279
附录 YHW-PROLOG使用指南 280
一、YHW-PROLOG 2.0系统组成 280
二、YHW-PROLOG 2.0内核 282
三、YHW-PROLOG 2.0前端 329
四、几个工具 350
五、错误信息 360
参考文献 363