当前位置:首页 > 工业技术
ARITY PROLOG5.0v  使用、参考手册
ARITY PROLOG5.0v  使用、参考手册

ARITY PROLOG5.0v 使用、参考手册PDF电子书下载

工业技术

  • 电子书积分:12 积分如何计算积分?
  • 作 者:张敏,孙华,查良钿,彭春龙译
  • 出 版 社:中国科学院软件研究所;时运电脑公司;海声软件开发公司;北京科海培训中心
  • 出版年份:1989
  • ISBN:
  • 页数:339 页
图书介绍:
《ARITY PROLOG5.0v 使用、参考手册》目录

序言 1

Ariy/Prolog解释器和编译器使用手册 1

Ariy/Prolog语言参考手册 2

第一部分 启动 Arity/Prolog 3

第1章 什么是Prolog 3

第2章 安装系统 4

2.1 启动Arity/Prolog 4

2.2 退出Arity/Prolog 4

2.3 可选择的Arity/Prolog装配过程 4

2.3.1 从任一目录区中调用Arity/Prolog 5

2.3.2 启动解释器时将信息加入数据库 5

2.3.3 使用Arity/Prolog编辑器之外的编辑器 5

2.3.4 设置打开文件限制数 6

第3章 Arity/Prolog菜单 7

3.1 移动光标并进行选择 8

3.1.1 在菜单行方式下移动光标 9

3.1.2 在下拉菜单方式下移动光标并选择 9

3.1.3 快速键 10

3.1.4 功能键 10

3.1.5 会话框内的光标移动和选择 11

3.2 菜单选择项 12

3.2.1 File菜单选择项 13

3.2.2 Edit菜单选择项 14

3.2.3 Buffers菜单选择项 15

3.2.4 Info菜单选择项 17

3.2.5 Debug菜单选择项 17

3.2.6 Switch菜单选择项 18

3.2.7 Help菜单选择项 18

第4章 使用Arify/Prolog 19

4.1 Arity/Prolog编辑器 19

4.1.1 启动编辑器 19

4.1.2 使用编辑器 20

4.1.3 移动光标 20

4.1.4 删除、考贝和恢复文本 21

4.1.5 文本查找和替换 22

4.1.6 文件合并 23

4.1.7 使用缓冲区 23

4.1.8 保存文件 24

4.1.9 使用辅助缓冲区 25

4.2 输入Prolog程序 25

4.2.1 保存示例文件 28

4.2.2 装入示例文件 28

4.2.3 错误处理 28

4.3 运行Prolog程序 29

4.3.1 浏览数据库 29

4.3.2 进行询问 30

4.3.3 删除已输入的内容 31

4.3.4 具有1000以上优先级算符的谓词 31

4.3.5 谓词命名的约定 32

4.4 加载文件到数据库 32

4.4.1 用于装入文件的谓词 34

4.4.2 嵌入的consult指命 34

4.5 转换到MS-DOS 35

4.6 使用调试器 35

4.6.1 调试器是如何工作的 36

4.6.2 运行调试器 37

4.6.3 调试一个程序 38

4.6.4 关闭调试器和消除监测点 40

4.6.5 从解释器中调用调试器 41

4.7 保存数据库的内容 41

4.7.1 恢复数据库内容 42

4.7.2 消除数据库的变化 42

4.7.3 保存和恢复数据库的谓词 42

4.8 Help文件包 43

4.8.1 使用Help文件 43

4.8.2 增加Help文件 44

4.9 Arity/Prolog信息 44

4.10 退出解释器 47

第5章 开发应用软件 48

5.1 使用窗口环境 48

5.2 程序设计风格 49

第6章 在解释器中加入可求值谓词 51

第二部分 建立编译的应用软件 57

第7章 Arity/Prolog编译器介绍 57

7.1 apc命令 58

7.2 连接每个文件建立一个可执行映象 59

第8章 编译应用软件的要点 61

8.1 进一步的了解 61

8.1.1 可执行文件 61

8.1.2 数据库文件 61

8.1.3 环境文件 62

8.1.4 浮点协处理器 62

8.2 软件开发过程简介 62

8.3 Prolog文件的结构 63

第9章 被编译的程序代码说明 65

9.1 为程序标识主入口点 65

9.2 restart谓词 66

9.3 公用说明 66

9.4 外部说明 67

9.5 显式说明 67

9.5.1 default(invisible)说明 69

9.6 模块说明 69

9.7 使用后辍interp 69

9.8 装入程序数据库 70

9.8.1 在一个被编译程序的数据库中装入子句 70

9.8.2 启动时装入数据库 72

9.9 编译时和运行时的操作符定义 73

第10章 编译与连接 74

10.1 编译 74

10.1.1 编译命令行的示例 74

10.1.2 ctrlvis文件 75

10.1.3 使用批处理文件 75

10.2 连接 76

10.2.1 使用连接文件 77

10.2.2 使用make文件 77

10.3 出错处理 78

第11章 环境文件 79

11.1 建立环境文件 80

11.1.1 局部栈大小 80

11.1.2 全局栈大小 81

11.1.3 尾随栈大小 81

11.1.4 设置最小和最大页面分配 81

11.1.5 溢出文件 82

11.1.6 IDB文件 82

11.1.7 扩展的存储器支持 83

11.2 缺省环境文件设置 83

第12章 远 PROLOG 84

12.1 段说明 84

12.2 远代码段的说明调整 84

12.3 clone实用程序 85

12.4 连接远代码段 85

第13章 优化编译代码 87

13.1 包含mode说明 87

13.2 编译算术运算优化 88

第14章 说明编译器 89

第三部分 与其它程序设计语言相接 93

第15章 书写可调用的汇编语言子程序 93

15.1 说明汇编语言子程序名字和自变量 93

15.1.1 命名汇编语言子程序 93

15.1.2 说明子程序是外部的和可见的 93

15.2 堆栈和寄存器的使用 94

15.3 汇编语言宏 95

15.3.1 evalsucced 95

15.3.2 evalfail 95

15.3.3 evalargref 95

15.4 汇编语言子程序 95

15.4.1 getshort_a 96

15.4.2 getint_a 96

15.4.3 putshort_a 96

15.4.4 putint_a 96

15.4.5 getlong_a 96

15.4.6 p?tlong_a 97

15.4.7 整数存储 97

15.4.8 gettxt_a 97

15.4.9 puttxt_a 97

15.4.10 putatm_a 98

15.4.11 getflt_a 98

15.4.12 putflt_a 98

15.4.13 getfunctor_a 98

15.4.14 getfuncarg_a 99

15.4.15 putfunctor_a 99

15.4.16 findtype_a 99

15.4.17 eqrefs_a 100

15.5 汇编语言求值谓词实例 100

第16章 书写可调用的c函数 104

16.1 说明C函数的名字和自变量 104

16.1.1 说明函数为外部的和可见的 104

16.2 转换数据类型 105

16.3 Arity/Prolog C子程序 106

16.3.1 getshort_c 106

16.3.2 getint_c 106

16.3.3 putshort_c 106

16.3.4 putint_c 107

16.3.5 getlong_c 107

16.3.6 putlong_c 107

16.3.7 整数 存储 108

16.3.8 gettxt_c 108

16.3.9 puttxt_c 108

16.3.10 putatm_c 109

16.3.11 getflt_c 109

16.3.12 putflt_c 109

16.3.13 getfunctor_c 109

16.3.14 getfuncarg_c 110

16.3.15 putfunctor_c 110

16.3.16 findtype_c 110

16.3.17 eqrefs_c 111

16.4 返回成功或失败 111

16.5 编译Lattice C函数 111

16.6 编译Microsoft C函数 111

16.7 连接C模块 112

16.8 程序设计例子 112

16.8.1 把C求值谓词加到解释器中 113

16.8.2 调用C函数的独立程序 115

16.9 从C函数调用Prolog 117

第17章 书写可调用的PASCAL和FORTRAN过程 118

17.1 说明函数名字和自变量 118

17.1.1 Pascal子程序的外部和可见的说明 118

17.2 转换数据类型 119

17.3 Arity/Prolog Pascal函数 119

17.3.1 getshort_p 120

17.3.2 getint_P 120

17.3.3 putshort_P 120

17.3.4 putint_p 120

17.3.5 getlong_p 120

17.3.6 putlong_p 121

17.3.7 整数存储 121

17.3.8 gettxt_P 121

17.3.9 puttxt_p 121

17.3.10 putatm_p 122

17.3.11 getflt_p 122

17.3.12 putflt_p 122

17.3.13 getfunctor_p 122

17.3.14 getfuncarg_p 123

17.3.15 putfunctor_p 123

17.3.16 findtype_P 123

17.3.17 eqrefs_p 123

17.4 返回成功或失败 124

17.5 编译Pascal函数 124

17.5.1 连接Pascal函数 124

17.6 Pascal程序设计例子 124

17.7 Fortran程序设计例子 127

17.8 从Pascal函数中调用Prolog 128

附录A 词汇表 130

附录B Arity/Prolog信息 132

B.1 MS—DOS信息 132

B.2 语法错误 132

B.3 运行时错误 133

B.4 编译器信息 135

附录C 用其它语言书写的求值谓词 137

附录D 谓词一览 139

附录E Arity/Prolog编辑器快速参考指南 151

附录F 推荐参阅文献 153

Arity/Prolog语言参考手册 157

符号约定 157

第1章 语言结构和控制 158

1.1 一致化 158

1.2 Prolog数据类型 158

1.2.1 变量 159

1.2.2 原子 159

1.2.3 整数 159

1.2.4 浮点数 159

1.2.5 串 160

1.2.6 数据库参引数 160

1.2.7 结构 160

1.2.8 表 161

1.3 程序控制 161

1.3.1 回溯 162

1.3.2 repeat—fail循环 163

1.3.3 递归 164

1.3.4 截断 164

1.3.5 截断—失败组合 165

1.3.6 使用剪切 166

1.3.7 使用case控制算符 167

第2章 算术运算及算术表达式 169

2.1 算术运算符 170

2.2 算术求值谓词 171

2.3 计数器谓词 172

第3章 处理项 173

3.1 分类项 173

3.2 使项一致化 174

3.3 比较项 175

3.4 转换项 177

3.4.1 struct=..List 177

3.4.2 functor(?struct,?Name,?Arity) 177

3.4.3 arg(+N,+Term,-Value) 177

3.4.4 argo(+N,+Term,-Value) 178

3.4.5 argrep(+Term,+N,+Arg,-Newstruct) 178

3.4.6 name(?Atom,?List) 178

3.4.7 length(+List,-N) 179

3.5 收集项 179

3.5.1 bagof(+Term,+Goal,-Bag) 179

3.5.2 setof(+Term,+Goal,-Set) 180

3.5.3 findall(+Term,+Goal,-List) 181

第4章 管理数据库 182

4.1 数据库中的项 183

4.1.1 recorda(+Key,+Tern,-Ref) 184

4.1.2 recordz(+Key,+Term,-Ref) 185

4.1.3 record after(+Ref,+Term,-NewRef) 185

4.1.4 recorded(+Key,+Term,-Ref) 185

4.1.5 recorded tro(+Key,+Term,-Ref) 185

4.1.6 instance(+Ref,-Term) 185

4.1.7 Key(+Key,-Ref) 185

4.1.8 keys(+Key) 185

4.1.9 nref(+Ref,-Next) 186

4.1.10 pref(+Ref,-Prey 186

4.1.11 nth_ref(Key,+N,-Ref) 186

4.1.12 replace(Ref,+Term) 186

4.1.13 erase(+Ref) 186

4.1.14 eraseall(Key) 186

4.1.15 expunge 186

4.1.16 hard-erase(+Ref) 187

4.1.17 如何使用recorded,recorded--tro,erase,hard-erase 187

4.2 数据库中的子句 189

4.2.1 clause(+Head,-Body) 189

4.2.2 asserta(+Clause) 189

4.2.3 assertz(+Clause) 190

4.2.4 assert(+Clause) 190

4.2.5 retract(+Clause) 190

4.2.6 abolish(Name/Arity) 190

4.3 检测数据库 190

4.3.1 listing 190

4.3.2 current-predicate(-Predicate) 191

4.4 保存和恢复数据库 191

4.4.1 save 191

4.4.2 restore 192

4.5 用域进行工作 192

4.5.1 creat_world(+World_name) 193

4.5.2 code_world(-Old,+New) 193

4.5.3 data_world(-Old,+New) 194

4.5.4 what_worlds(-X) 194

4.5.5 delete_world(+World_name) 194

第5章 索引数据库的数据 195

5.1 b-树 195

5.1.1 reordb(+Tree_name,+Sort_Key,+Term) 196

5.1.2 retrieveb(+Tree_name,?Sort_Key,?Term) 197

5.1.3 betweenb(+Tree_name,+Keyl,+Key2,+Relationl,+Relation2,-Key,-Term) 197

5.1.4 betweenkeysb(+Tree_name,Keyl,+Key2,-Key) 198

5.1.5 defineb(+Tree_name,+Splitsize,+Uniqueness,+Order) 198

5.1.6 replaceb(+Tree_name,Sort_key,+Old_term,+New_term) 200

5.1.7 remoneb(+Tree_name,+Sort_key,+Term) 200

5.1.8 nhat_btrees(-Btree) 200

5.1.9 removeallb(+Tree_name) 200

5.2 建立hash表 201

5.2.1 recordh(+Table_name,+Sort_Key+Term) 202

5.2.2 retrieveh(+Table_name,?Sort_key,?Term) 202

5.2.3 defineh(+Table_name,+HashBuckets) 203

5.2.4 removeh(+Table_name,Sort_key,+Term) 203

5.2.5 removeallh(+Table_name) 203

5.3 对b-树和Hash表使用多重索引 203

第6章 标准输入输出 205

6.1 项I/O 205

6.1.1 read(-Term) 206

6.1.2 write(+Term) 206

6.1.3 writeq(+Term) 206

6.1.4 display(+Term) 206

6.1.5 op(+Prec,+Assoc,+Op) 207

6.1.6 current_op(?Prec,?Assoc,?Op) 209

6.1.7 reset_op 209

6.2 字符I/O 209

6.2.1 geto(-Char) 210

6.2.2 get(-Char) 210

6.2.3 geto_noecho(Char) 210

6.2.4 Keyb(-ASCII,Scan) 210

6.2.5 Keyb-Peek(-ASCII,-Scan) 211

6.2.6 flush 212

6.2.7 skip(+Char) 212

6.2.8 put(+Char) 212

6.2.9 nl 212

6.2.10 tab(+Name) 212

6.3 串I/O 212

第7章 文件输入输出 214

7.1 打开和关闭文件 215

7.1.1 Create(-Handle,+Filenmae) 216

7.1.2 Gpen(-Handle,+Filename,+Access) 216

7.1.3 P-open(-Handle,+Filename,+Access) 216

7.1.4 close(+Handle) 217

7.2 文件中移动 217

7.2.1 seek(+Handle,+Offset,+Method,-Newloc) 217

7.3 改变输入输出方向 218

7.3.1 stdin,stdout,stdinout 218

7.3.2 file_list 219

7.4 标准Prolog输入输出 219

7.1.1 see(+Filename) 219

7.4.2 seeing(-Filename) 219

7.4.3 seen 220

7.4.4 see_h(+Handle) 220

7.4.5 tell(+Filename) 220

7.4.6 telling(-Filename) 220

7.4.7 told 220

7.4.8 tell_h(Hanolle) 220

第8章 低级I/O 221

8.1 in(+Port,-Byte) 221

8.2 out(+Port,+Byte) 221

第9章 字符串 222

9.1 管理字符串 224

9.1.1 string-search 224

9.1.2 substring(+Instring,+N,+Length,-Outstring) 224

9.1.3 nth_char(+N,+String,-Char) 225

9.1.4 string_length(+String,-Length) 225

9.1.5 concat 225

9.2 转换字符串 226

9.2.1 string_term(?String,?Term) 226

9.2.2 atom_string(?Atom,?String) 226

9.2.3 int_text(?Integer,?Text) 226

9.2.4 float_text(?Float,?Text,?Format) 227

9.2.5 ilst_text(?List,?String) 227

9.3 字符串输入输出 227

9.3.1 read_string 227

9.3.2 read_line(+Handle,-Line) 228

第10章 窗口 229

10.1 建立和修改窗口 229

10.2 回送窗口信息 230

10.3 current_window(-Old,?New) 231

10.4 hide_window(-Current,+New) 231

10.5 what_windows(-Name) 231

10.6 resiz_window(+Rows,+Columns) 232

10.7 move_window(+Rows,+Columns) 232

10.8 relabel_window(+Lable) 232

10.9 recolor_window(+Window_attr+Border_attr) 232

10.10 store_windows 233

10.11 refresh 233

10.12 delete_window(+Name) 233

10.13 上托窗口 233

10.13.1 建立上托窗口 234

10.13.2 删除上托窗口 234

10.14 一个窗口的例子 235

第11章 文本管理 238

11.1 光标控制 238

11.1.1 tget(-Row,-Column) 238

11.1.2 tmore(+Row,+Column) 238

11.1.3 set_cursor(+Low_scan,+High_scan) 239

11.1.4 get_cursor(-Low_scan,-High_scan) 239

11.1.5 tchar(-Char,-Attr) 239

11.2 写到窗口 239

11.2.1 wc(+Count,+Character) 240

11.2.2 wa(+Count,Attribute) 241

11.2.3 wca(+Count,+Character,+Attribute) 241

11.2.4 tscroll(+Count,+(ULR,ULC),CLRR,LRC) 242

11.2.5 cls 242

11.2.6 region_ca(+(ULR,ULC),(LRR,LRC),?String) 242

11.2.7 region_cc(+(ULR,ULC),+(LRR,LRC),?String) 243

11.2.8 region_c(+(ULR,ULC),+(LRR,LRC),?String) 243

第12章 会话框 244

12.1 标准会话框控制 245

12.1.1 在会话框中移动和选择 247

12.1.2 加速话会框 249

12.1.3 退出会话框 249

12.2 会话框和控制定义 249

12.2.1 文本控制定义 251

12.2.2 选择按钮控制 251

12.2.3 辐射按钮定义 252

12.2.4 编辑域定义 253

12.2.5 按钮定义 254

12.2.6 列表框定义 254

12.2.7 编辑框定义 256

12.2.8 编辑区定义 257

12.3 装入编辑框和编辑区的内容 257

12.4 调入控制定义 258

12.5 dialog|run谓词 258

12.6 处理控制信息 258

12.6.1 会话框管理信息 260

12.6.2 控制信息 261

12.6.3 通知信息 264

12.6.4 which_control谓词 265

12.7 处理信息 265

12.7.1 缺省会话数 265

12.7.2 send_dialog_msg谓词 266

12.7.3 send_control_msg谓词 266

12.7.4 exit_dbox谓词 266

12.7.5 一个信息处理的实例 267

12.8 设置控制的初始值 270

12.9 运行会话框 271

12.10 设计定做的控制 271

12.10.1 如何处理控制定义 272

12.10.2 write_ctrl_tert(+Key,+Label) 273

12.10.3 一个定做的控制实例 273

12.10.4 使用标准控制信息与定做的控制 277

12.11 编译使用会话框的程序 278

第13章 菜单 279

13.1 在菜单中移动和进行选择 279

13.1.1 条形菜单方式下移动光标 280

13.1.2 在下拉方式移动和进行选择 280

13.1.3 加速键(accelerator key) 280

13.2 菜单定义 281

13.2.1 条形菜单项定义 282

13.2.2 下拉菜单选样项定义 283

13.2.3 一个菜单定义实例 283

13.3 菜单信息 284

13.3.1 画出并启动条形菜单 285

13.3.2 画条形菜单 286

13.3.3 检查和改变色状态 286

13.3.4 检查和改变检查状态 287

13.3.5 改变菜单属性 287

第14章 受限子句文法标志法 289

14.1 理解语言结构 289

14.2 内容随意文法 289

14.3 受限子句文法 290

14.4 DCG和自然语言分析器 290

14.4.1 DCG语法 291

14.4.2 调用你的DCG 291

14.4.3 添加附加变量 291

14.4.4 expand_term(+T1,-T2) 293

14.5 一个使用DCG的实例 293

第15章 执行系统功能 295

15.1 MS-DOS相互作用及系统谓词 295

15.1.1 shell 295

15.1.2 halt 295

15.1.3 lock 296

15.1.4 unlock 296

15.1.5 gc 296

15.1.6 statstcs 296

15.1.7 system(+Predicate) 297

15.2 建立程序数据库 298

15.2.1 consult(+Filename) 298

15.2.2 reconsult(+Filename) 298

15.2.3 [+Filename] 298

15.2.4 edit(+Filename) 298

15.3 处理错误 299

15.3.1 syntaxerrors(-Old,+New) 299

15.3.2 fileerrors(-Ole,+New) 300

15.3.3 errcode(-Code) 300

15.4 管理目录 300

15.4.1 disk(?DiskName) 300

15.4.2 mkdir(+Path) 301

15.4.3 chdir(+Path) 301

15.4.4 rmdir(+Path) 301

15.4.5 directory(+Peath,-Name,-Mode,-Tim,-Date,-Size) 301

15.5 执行文件维护 302

15.5.1 delete(+Filename) 302

15.5.2 rename(+Filename,+Newname) 302

15.5.3 chmod(+Filename,?Attributes) 302

15.6 存取系统时钟 302

15.6.1 date(?date(Year,Month,Day)) 303

15.6.2 time(?time(Hour,Minute,Second,Hundredth)) 303

15.6.3 date_day(+date(Y,M,D),-WeekDay) 303

15.7 在应用程序中包含变元 305

第16章 嵌入的C 306

16.1 编译指令 306

16.1.1 model指令 306

16.1.2 cseg指令 307

16.1.3 dseg指令 307

16.1.4 pack指令 307

16.1.5 name(pascal)指令 307

16.2 C全局说明和预处理指令 308

16.2.1 C数据类型 308

16.2.2 简单变量说明 308

16.2.3 枚举说明 309

16.2.4 结构说明 309

16.2.5 联合说明 309

16.2.6 数组说明 309

16.2.7 指针说明 310

16.2.8 数说明 310

16.2.9 复合说明 310

16.2.10 存储类别 310

16.2.11 typedef指令 311

16.2.12 预处理指令 311

16.2.13 Arity/Prolog嵌入的C不支持的项目 311

16.3 使用嵌入的C表达式 312

16.3.1 在嵌入的C表达式中说明变量 312

16.3.2 表达式的元素 312

16.3.3 算符 314

16.3.4 值算符 315

16.3.5 算术运算 315

16.3.6 使用Prolog变量 316

16.4 串转换谓词 316

16.5 说明全局变量 317

16.6 编译的算术运算 317

16.6.1 嵌入的C表达式之外的编译的算术运算 318

16.7 说明被C,Pascal或Fortran调用的Prolog谓词 318

16.7.1 处理不确定的谓词 318

16.7.2 public说明 319

16.8 arityc.c和arityp.pas文件 320

16.9 运行态错 321

16.10 在解释器中使用嵌入的C 321

16.11 嵌入的C实例 322

第17章 调试器谓词 327

17.1 启动和关闭调试器 327

17.1.1 trace 327

17.1.2 notrace 327

17.2 建立监测点 327

17.2.1 spy 327

17.2.2 nospy 328

17.3 端口 328

17.3.1 leash(+Mode) 328

17.4 调试器命令 329

附录A BONUS.LIB库 330

A.1 写整数,浮点数,和串 330

A.2 读整数,浮点数,串和 331

A.3 串缓冲谓词 332

A.3.1 string_buf(+String) 332

A.3.2 but_string(-String) 332

A.3.3 append_buf(+String) 332

A.3.4 buf_length(-Length) 332

A.3.5 write_buf(+Start,+Length) 333

A.3.6 buf_insert_char(+Char,+Location) 333

A.3.7 buf_delete_char(+Location) 333

A.4 Microsoft鼠标谓词 333

A.4.1 mouse 334

A.4.2 show_mouse_cursor 334

A.4.3 hide_mouse_cursor 334

A.4.4 set_mouse_position(+Row,+Column) 334

A.4.5 get_mouse_position(-Row,-Column,-State) 334

A.4.6 mouse_region(+ULR, +ULC,+LRR,+LRC) 334

A.4.7 mouse_press(+Button,-How many,-Row,-Column,-State) 335

A.4.8 mouse_release(+Button,-How many,-Row,-Column,-State) 335

A.4.9 set_mouse_cursor(+Cursor_type,+Cursor_Val1,+Cursor_Val2) 336

A.5 ANSI驱动谓词 336

A.6 视屏页面 338

A.6.1 video_page(-Old,+New) 338

A.6.2 video_mode(-Old,+New) 339

相关图书
作者其它书籍
返回顶部