目录 1
译者的话 1
第Ⅰ部分 逻辑程序 1
第1章 基本结构 1
1.1 事实 1
1.2 询问 2
1.3 逻辑变元的代换和实例化 2
1.4 存在询问 3
1.5 全称事实 3
1.6 合取询问和共享变元 4
1.7 规则 5
1.8 一个简单的抽象解释器 7
1.9 逻辑程序的含义 9
1.10 小结 10
第2章 数据库程序设计 12
2.1 简单数据库 12
2.2 结构化数据和数据抽象 15
2.3 递归规则 18
2.4 逻辑程序和关系数据库模型 20
2.5 背景 21
第3章 递归程序设计 22
3.1 算术 22
3.2 表 28
3.3 构造递归程序 34
3.4 二叉树 38
3.5 处理符号表达式 41
3.6 背景 45
第4章 逻辑程序的计算模型 46
4.1 合一 46
4.2 逻辑程序的抽象解释器 48
4.3 背景 53
第5章 逻辑程序理论 54
5.1 语义 54
5.2 程序正确性 55
5.3 复杂性 56
5.4 搜索树 57
5.5 逻辑程序设计中的否定 59
5.6 背景 60
第Ⅱ部分 Prolog语言 61
第6章 纯Prolog 61
6.1 Prolog的执行模型 61
6.2 同常规程序设计语言比较 65
6.3 背景 66
第7章 纯Prolog的程序设计 67
7.1 规则顺序 67
7.2 终止问题 68
7.3 目标顺序 69
7.4 冗余解 71
7.5 纯Prolog中的递归程序设计 73
7.6 背景 77
8.1 算术运算的系统谓词 78
第8章 算术运算 78
8.2 进一步讨论算术逻辑程序 79
8.3 将递归转换为迭代 80
8.4 背景 86
第9章 结构验证 87
9.1 类型谓词 87
9.2 存取复合项 89
9.3 背景 94
第10章 元逻辑谓词 95
10.1 元逻辑类型谓词 95
10.2 比较非基项 98
10.3 变量作为对象 99
10.4 元变量机制 101
10.5 背景 101
第11章 截断与否定 102
11.1 绿色截断:表达确定性 102
11.2 尾递归优化 105
11.3 否定 107
11.4 红色截断:省略显式条件 109
11.5 缺省规则 111
11.6 背景 112
第12章 附加逻辑谓词 114
12.1 输入/输出类 114
12.2 程序的存取与处理 116
12.3 存储功能 117
12.4 交互程序 118
12.5 失败驱动的循环 122
12.6 背景 123
第13章 语用学 125
13.1 Prolog程序的效率 125
13.2 程序设计技巧 126
13.3 程序设计风格和格式 129
13.4 程序开发 130
13.5 背景 132
14.1 产生与测试 133
第Ⅲ部分 高级Prolog程序设计技术 133
第14章 非确定性程序设计 133
14.2 随意和未知非确定性 142
14.3 仿真非确定性计算模型 146
14.4 人工智能的经典范例:ANALOGY,ELIZA和McSAM 149
14.5 背景 156
第15章 非完全数据结构 157
15.1 差值表 157
15.2 差值结构 162
15.3 词典 164
15.4 队列 166
15.5 背景 168
第16章 限定子句文法分析 175
16.1 背景 175
第17章 二阶程序设计 176
17.1 集合表达式 176
17.2 集合表达式的应用 179
17.3 其它二阶谓词 186
17.4 背景 187
第18章 检索技术 189
18.1 检索状态空间图 189
18.2 检索博弈树 197
18.3 背景 202
第19章 元解释程序 203
19.1 简单元解释程序 203
19.2 专家系统增强型元解释程序 209
19.3 用于调试的增强型元解释程序 215
19.4 背景 222
第Ⅳ部分 应用 224
第20章 博弈程序 224
20.1 智囊 224
20.2 Nim(余一棋) 227
20.3 Kalah 231
20.4 背景 237
21.1 背景 244
第21章 信贷评估专家系统 244
第22章 方程解算器 245
22.1 方程解算综述 245
22.2 因式分解 246
22.3 分离 247
22.4 多项式 255
22.5 均匀化 257
22.6 背景 259
第23章 编译程序 260
23.1 编译程序概述 260
23.2 分析程序 266
23.3 代码生成程序 268
23.4 汇编程序 272
23.5 背景 274
附录 275
1.参考材料 275
2.系统谓词 281