目录 1
第一章 PROLOG简介 1
使读者对PROLOG程序设计有一个感性认识。介 2
绍客体、关系、事实、规则和变量等基本概念。 2
1.1 事实 2
1.2 问题 5
1.3 变量 7
1.4 合取 9
1.5 规则 14
1.6 小结和练习 21
第二章 PROLOG的基本要点 24
较详细地讨论了PROLOG的语法及其数据结构。 24
2.1 语法 24
2.2 字符 28
2.3 算子 29
2.4 等同 31
2.5 算术运算 33
2.6 目标的满足 37
第三章 数据结构的使用 42
用“树”和“表”来表征客体和关系,并通过例子 42
讲解PROLOG程序。 42
3.1 结构和树 42
3.2 表 44
3.3 表的成员关系 48
3.4 例题:句子变换 52
3.5 例题:字序比较 55
3.6 例题:零件清单 58
4.1 多个解的产生 62
改变PROLOG程序的执行顺序。 62
讨论怎样从一组子句中产生一组解答。用“切断” 62
第四章 回溯和“切断” 62
4.2 “切断” 69
4.3 “切断”的一般用法 72
4.4 与“切断”有关的几个问题 83
第五章 输入和输出 86
介绍字符和结构的输入输出方法。编写一个程序, 88
用来读入用户给出的句子,表示成一列单词组成的表。 88
该表可用于第九章中的语法规则。 88
5.1 项的读写 88
5.2 字符的读写 92
5.3 英语句子的读入 94
5.4 文件的读写 97
5.5 算子的说明 100
程序,理解内部谓词在程序中的含义。 103
6.1 输入新的子句 103
第六章 内部谓词 103
明它们的使用。在这基础上,读者应能阅读相当复杂的 103
解释核心PROLOG的内部谓词,通过实例逐一说 103
6.2 成功与失败 107
6.3 项的分类 108
6.4 把子句当作项处理 112
6.5 一般结构分量的生成和存取 120
6.6 对回溯的干预 129
6.7 生成复杂的目标 131
6.8 等同 134
6.9 输入和输出 134
6.10 文件处理 139
6.11 算术表达式求值 139
6.12 数的比较 140
6.13 观察PROLOG的运行 141
第七章 程序实例 143
给出许多用于各个领域的实用程序,例如表的处理、 143
集的运算、符号微分以及公式化简等。 143
7.1 有序树型字典 143
7.2 迷宫搜索 147
7.3 梵塔问题 150
7.4 改进后的零件清单 151
7.5 表处理 154
7.6 集的表示方法和集的运算 158
7.7 排序问题 160
7.8 利用数据库存放结构的几个谓词 164
7.9 图的搜索 170
7.10 一种求素数的方法 175
7.11 符号微分 177
7.12 结构的映射和树的变换 179
第八章 PROLOG程序的调试 183
在前几章的基础上,读者已有能力写出很好的程序。 184
本章讨论程序设计问题,包括控制流模型,程序中的常 184
见错误和调试技术。 184
8.1 程序的输出格式 184
8.2 常见错误 187
8.3 另一种控制流模式 190
8.4 跟踪和监视点的使用 197
8.5 错误的修正 207
时的一些设计决策。 209
9.1 语法分析问题 209
介绍有关应用,例如用文法规则进行自然语言分析 209
第九章 文法规则的应用 209
9.2 语法分析问题的PROLOG表达方法 212
9.3 文法规则的表示法 218
9.4 添加额外的元 221
9.5 添加额外的任务 225
9.6 小结 227
第十章 PROLOG和逻辑的关系 232
介绍谓词演算、子句形式、归结原理、定理证明以 232
及逻辑程序设计等概念。 232
10.1 谓词演算简介 232
10.2 子句形式 235
10.3 子句表示法 241
10.4 消解原理和定理证明 243
10.5 Horn子句 247
10.6 PROLOG 248
10.7 PROLOG和逻辑程序设计 250
第十一章 PROLOG应用举例 254
给出一组PROLOG的应用课题和工程项目。 254
11.1 简单应用举例 254
11.2 难度较大的应用举例 257
附录 261
附录一 部分习题解答 261
附录二 子句形式——PROLOG程序 267
附录三 美国信息交换标准码(ASCII) 273
附录四 PROLOG的各种文本 275
附录五 DEC-10上的PROLOG系统 278
附录六 PDP-11 UNIX上的PROLOG系统 287
附录七 LSI-11 RT-11上的PROLOG系统 294
附录八 ICL 2980 EMAS上的PROLOG系统 300
附录九 其它PROLOG系统 300