实验一 Prolog语言编程练习

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一Prolog语言编程练习

一、实验目的

加深对Prolog语言执行机理的认识,掌握Prolog语言的特点,熟悉其编程环境,为以后的人工智能程序设计做好准备。

1、熟悉Turbo Prolog运行环境;

2、掌握PROLOG语言的三种基本语句,以及匹配、回溯等基本机理;

3、掌握用PROLOG程序编写、编译和运行的方法。

4、编写一个小型程序并运行。

二、相关知识

1、Prolog简介

Prolog语言于20世纪70年代诞生于法国Marseille大学,此后其应用日益广泛,尤其在日本宣布Prolog为五代机的核心语言以后,更引起世界的普遍关注。

Prolog即PROgramming in LOGic,即用逻辑进行程序设计,它是由逻辑学家开发的一种描述式语言。它以谓词逻辑为基础,故也称为逻辑型语言。

本门课程实验程序将在Turbo Prolog上实现。

2、Turbo Prolog的使用

1) 在硬盘上(假设为d盘。最好不要用c盘)建立目录d:\Turbo Prolog,将Prolog所有文件拷贝到该目录下。在D:\Turbo Prolog下建立存放Prolog程序的文件夹d:\Turbo Prolog\test,用来保存Prolog程序文件。

2)执行文件为D:\Turbo Prologd\ Prolog.exe,启动Prolog的运行环境。

3)在Turbo Prolog集成环境中新建一个Prolog程序(file→new file),输入程序,保存到d:\Turbo Prolog\test文件夹中。

4) 编译程序(compile)。

5)运行程序(run)。在右侧的窗口中输入“?-”提示符后输入要查询的问题。

6)如需先前输入的修改程序,应先打开文件(file→load),修改完程序并保存后,再执行4)步进入。

三、实验内容及步骤

新建一文件:like.pro,保存至d:\Turbo Prolog\test文件夹中。在该文件中建立如下事实数据库:

注:谓词名(如:like)和常量(如:mark)用小写字母,每条语句以点‘.’结束。

查询1:

?- like(mark,tennis). {查询的目标(goal)}

yes. {有某个事实与目标匹配,查询成功,回显' yes.'}

查询2:

?- like(mark,football).

no. {没有与目标匹配的事实,查询失败,回显'no.' }

查询3:

?- like(X, tennis ). { X为变量(大写),匹配中X与ellen被绑定}

X = ellen {按回车键}

yes. {表示还有答案}

如果用户输入分号(;),Prolog就开始寻找其他的答案。首先它必须释放(unbinds)变量X。然后从上一次成功的位置的下一条子句开始继续搜索。这个过程叫做回溯(backtracking)。

?- like(X, tennis ).

X = ellen ;

X = mark ;

X = tom ;

no {表示没有答案了}

查询4:

?- like(X, tennis ),!.

X = ellen ;

no

截断谓词cut,prolog内部谓词,使用符号!来表示。cut能够有效地抑制其左边的子目标与其父目标的回溯,而它右边的目标则不受影响,如下面查询:

?- like(X, tennis ),! like(tom,Y ),

四、思考题

1、Prolog语言与命令式语言的执行机理有什么不同?

2、试分析Prolog推理时,目标与子句的匹配顺序。

相关文档
最新文档