首页编程prolog?prolog程序各条语句描述

prolog?prolog程序各条语句描述

编程之家2023-11-03106次浏览

在这个信息爆炸的时代,了解prolog和prolog程序各条语句描述的重要性不言而喻。本文将为您带来全面的解读,助您在这个领域中游刃有余。

prolog?prolog程序各条语句描述

人工智能语言的lisp和prolog

函数型语言LISP和逻辑型语言PROLOG都适合作符号处理,都适合于结构化程序设计(LISP提供了函数定义,prolog提供了谓词定义),都具有递归功能(prolog还具有自动回溯功能),都具有人机交互能力(prolog还特别适合于推理),也都具有把过程与说明式数据结构混合起来的能力以及辨别数据、确定控制的模式匹配机制(LISP将程序与数据均表示为表,因此可以把程序作为数据处理,也可将数据当作程序来执行。Prolog用一致的数据结构“项(term)”来构造数据和程序,事实、规则和询问的表现形式都为Horn子句,执行时作统一的操作匹配。LISP的匹配函数、prolog的合一运算自动匹配、自动搜索都具有很强的模式匹配机制。)因此可以说LISP和prolog是两种较为典型的人工智能语言。

prolog语言和sql的区别

一、Prolog(Programming inLogic的缩写)是一种逻辑编程语言。它建立在逻辑学的理论基础之上,最初被运用于自然语言等研究领域。现已广泛的应用在人工智能的研究中,可以用来建造专家系统、自然语言理解、智能知识库等。同时对一些通常的应用程序的编写也很有帮助,能够比其他的语言更快速地开发程序,因为它的编程方法更象是使用逻辑的语言来描述程序。

prolog程序没有特定的运行顺序,其运行顺序是由电脑决定的,而不是编程序的人。

prolog程序中没有if、when、case、for这样的控制流程语句

prolog程序和数据高度统一

prolog程序实际上是一个智能数据库

prolog?prolog程序各条语句描述

强大的递归功能

二、结构化查询语言(Structured Query Language)简称SQL(发音:/ˈes kjuːˈel/"S-Q-L"),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。

结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统,可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。

三、一般而言,prolog作为数据或者逻辑处理程序而运行,配合其它程序如VC++、JAVA等的界面,由此实现带UI交互的“智能”软件,当然你所编辑出来的“智能”是软件,而不能说是真正意义的人工智能。上文说Prolog就是一个智能数据库,其实不然,Prolog主要是对数据进行一种关系描述,比如张三和李四是A关系,李四和王二是B关系,A关系==B关系,那么Prolog则擅长处理这种逻辑上的数据关系,不能和SQL混为一谈,所以说,Prolog的用途是来处理数据之间关系的,而不是存储数据本质的存在。

prolog程序各条语句描述

只是大略的说明,要想知道更详细的东西,可以搜索相应的关键词或者查询专业资料

----------------------------------------

%域说明

prolog?prolog程序各条语句描述

%指定类型,前两个为符号(symbol),后一个为整数(integer)

domains

name=symbol.

sex=symbol.

age=integer.

%谓词说明

%括号内为相应的参数

%以person为例,通俗的说人有三个属性,姓名name,性别sex

%年龄age。

%而mother有两个参数——两个名字

predicates

person(name,sex,age)

mother(name,name)

father(name,name)

uncle(name,name)

aunt(name,name)

grandfather(name,name)

grandmother(name,name)

%目标说明

%以第一组为例,名字1是名字2的叔叔,那么就输出一条信息(write)

%注意逗号“,”是逻辑上的and

goal

uncle(Name1,Name2),

write(Name1," is",Name2,"'s uncle!\n"),

aunt(Name3,Name4),

write(Name3," is",Name4,"'s aunt!\n"),

grandfather(Name5,Name6),

write(Name5,"is",Name6,"'s grandfather!\n"),

grandmother(Name7,Name8),

write(Name7,"is",Name8,"'s grandmother!\n").

%子句集

%以第一个为例,陈述了一个事实:

%有一个人,他的名字的是a,性别是男m(man),年龄是21

%而mother(e, a)则陈述了这样一个事实,e是a的妈妈mother

%其它的类似

clauses

person(a,m,21).

person(b,m,22).

person(c,w,23).

person(d,w,24).

mother(e,a).

mother(e,b).

mother(e,c).

mother(e,d).

mother(c,f).

father(a,g).

father(g,h).

%叔叔的定义,这是规则

%谓词predicate包括两种,fact和rule,事实就是上面那种,

%规则就是下面这种

%简单的说,如果有Name1,Name2是人person,并且具有共同的

%母亲Z,并且Name1比Name2的年龄大Age1>Age2,那么Name1

%就是Name2的叔叔uncle

% rule由三部分组成,:-为连接符,一般读作if,连接符前边的部分为head

%后面的部分为body。

uncle(Name1,Name2):-

person(Name1,m,Age1),

person(Name2,m,Age2),

mother(Z,Name1),

mother(Z,Name2),

Age1>Age2.

aunt(Name3,Name4):-

person(Name3,w,Age3),

person(Name4,w,Age4),

mother(Z,Name3),

mother(Z,Name4),

Age3>Age4.

grandfather(Name1,Name2):-

father(Name1,Y),

father(Y,Name2).

grandmother(Name7,Name8):-

mother(Name7,X),

mother(X,Name8).

prolog语言的三种基本语句是

prolog语言的三种基本语句是事实;规则;询问。

PROLOG语言(逻辑编程语言)一般指逻辑编程语言。Prolog(Programming in logic)是一种面向演绎推理的逻辑型程序设计语言,最早于1972年由柯尔麦伦纳(Colmeraner)及其研究小组在法国马赛大学提出。

Prolog以处理一阶谓词演算为背景,由于其简单的文法、丰富的表达力和独特的非过程语言的特点,很适合用来表示人类的思维和推理规则,从而一问世就赢得了人工智能研究和应用开发者的广泛兴趣。

尤其在西欧和日本,Prolog语言已推广应用于许多应用领域,如关系数据库、数理逻辑、抽象问题求解、自然语言理解和专家系统等。日本还在其于1979年提出的第五代计算机研究计划中把Prolog列为核心语言。

Prolog实际上就是一种基于逆向规则的演绎推理技术,只不过对规则和目标的表示有严格的限制。再加上演绎推理控制机制自身的简单性,难以适用于复杂的应用域。

特点

Prolog语言的语法结构相当简单,但描述能力很强。例如,当事实和规则描述的是某一学科公理。那么问题就是待证的命题;当事实和规则描述的是某些数据和关系,那么问题就是数据查询语句;当事实和规则描述的是某些状态变化规律,那么问题就是目标状态。

因此,Prolog语言是一种智能型程序设计语言。Prolog程序没有特定的运行顺序,程序运行顺序完全按照数理逻辑推导的方式进行。而不是由编程序的人决定。Prolog是一种描述型语言,用特定的方法描述一个问题,然后由计算机自动找到这个问题的答案。

OK,本文到此结束,希望对大家有所帮助。

java学院 想学java哪家学校好长沙网页设计公司?长沙有那几家网站建设公司相对还好的咯