prolog 逻辑程序设计语言prolog教程

prolog 逻辑程序设计语言prolog教程

ID:11527215

大小:339.00 KB

页数:139页

时间:2018-07-12

prolog 逻辑程序设计语言prolog教程_第1页
prolog 逻辑程序设计语言prolog教程_第2页
prolog 逻辑程序设计语言prolog教程_第3页
prolog 逻辑程序设计语言prolog教程_第4页
prolog 逻辑程序设计语言prolog教程_第5页
资源描述:

《prolog 逻辑程序设计语言prolog教程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第5章逻辑程序设计语言Prolog LogicalProgrammingLanguageProlog为了缩小人类自然语言与计算机程序设计语言之间的差距,人们开发了新型程序设计语言,较典型的有函数程序设计语言、逻辑程序设计语言以及面向对象的程序设计语言。Prolog语言是一种典型的逻辑程序设计语言。利用Prolog语言进行程序设计只需要程序员写出与问题有关的事实、规则以及要求解的具体问题。5.1Prolog语言概述5.1.1Prolog语言的发展PROLOG(ProgramminginLogic)语言是一种以逻辑推理为基础的逻辑型程

2、序设计语言。它是陈述性语言而不是过程性语言。它的思想最早(20世纪70年代初)在英国爱丁堡大学由R.Kowalski首先提出,并由M.VanEmden作了模型示范。1972年,AlainColmeraner及其研究小组在法国马塞大学研制成功了第一个Prolog系统。1977年,英国爱丁堡大学的D.Warren开发了DEC-10Prolog语言,使之进一步完善。5.1.1Prolog语言的发展1986年美国的BorlandInternational公司向个人计算机软件市场推出了TurboProlog软件。现在,PROLOG语言已广泛

3、应用于符号计算的许多应用场合,其中包括关系数据库、专家系统、数理逻辑、抽象问题求解、定理证明和语义学、自然语言理解、结构设计、位置规划和逻辑学、符号方程解决、编译程序编制、生物化学结构、生理学分析和药物设计,涉及了许多人工智能领域。5.1.2Prolog语言的特点ThecharacteristicsofProloglanguage(1)PROLOG语言是一种抽述性语言,用PROLOG语言求解问题时,只须程序员描述待解问题中的对象及它们之间关系的一些已知事实和规则。它强调描述对象之间的逻辑关系,而不必告诉计算机运算执行的先后次序,即

4、告诉计算机“做什么”,而不是像普通程序设计语言那样告诉计算机“如何做”。(2)Prolog语言的数据和程序结构统一,Prolog语言提供了一种统一的数据结构称为“项”。所有的程序和数据均由项构成,并且都是树型结构。(3)Prolog语言能够自动实现模式匹配和回溯。这些是人工智能系统中常用的基本操作。用户在Prolog语言这一级上不必考虑这个问题。5.1.2Prolog语言的特点ThecharacteristicsofProloglanguage(4)递归是Prolog语言的重要特点之一。由于这一特点,一个大的数据结构常常能由小的程

5、序来处理。(5)语法简明。Prolog语言仅有三种句型,语法规则比较简单。5.1.2Prolog语言的特点ThecharacteristicsofProloglanguage在定义逻辑程序之前,首先定义Horn子句,它是逻辑程序的组成要素。定义5.1子句      中如果至多只含有一个正文字,那么该子句称为Horn子句。Horn子句通常表示为相当于一条IF-THEN规则,由两部分组成:头部和体。结论部分P称为头部,前提部分称为体。5.2Prolog程序的实现原理5.2.0逻辑程序定义Horn子句在Prolog中有3种表示形式。(1

6、)无条件子句(事实Fact):A。(2)条件子句(规则Rule):A:-B1,…,Bn。(3)目标子句(问题Problem):?-B1,…,Bn。上述3种Horn子句均具有明显的非形式语义。5.2.0逻辑程序定义(1)无条件子句A:表示对变量的任何赋值,A均为真。(2)条件子句A:-B1,…,Bn:表示对变量的任何赋值,如果B1,…,Bn均为真,则A为真。(3)目标子句?-B1,…,Bn:其逻辑形式为:等价于它视作推理的目标。5.2.0逻辑程序定义例如,对于下面两个Horn子句:①W(X,Y):-P(X),Q(Y).②?-R(X,

7、Y),Q(Y).在①中W(X,Y)为头,P(X),Q(Y)为体。在②中R(X,Y),Q(Y)为体,头为空子句。事实上,②表示一个询问,R(X,Y),Q(Y)是否为真,或者X和Y取什么值的时候,R(X,Y),Q(Y)为真。5.2.0逻辑程序定义定义5.2逻辑程序就是由Horn子句构成的程序。在逻辑程序中,头部具有相同谓词符的那些子句称为该谓词的定义。例如,下面两个谓词逻辑句子,每个句子都只有一个头。Father(X,Y):-Child(Y,X),Male(X).Son(Y,X):-Child(Y,X),Male(Y).上述两个子句都

8、是Horn子句,因此它们构成一个逻辑程序。假设还有下面3个事实子句:Child(xiao-li,lao-li).Male(xiao-li).Male(lao-li).5.2.0逻辑程序定义如果把上述规则和事实加入Prolog中,编译执行后,给出下面

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。