超高级语言PROLOG

🏠 首页 《无线电》杂志 1988年 🔗 第6期 🔗 第28页 分类:技术市场 🔗 周凯歌 🔗

PROLOG语言是法国Marseilles大学的Alain Colmerauer于1970年发明的,而后以欧洲为中心开始传播。近年来对它的呼声日见高涨。特别是1982年,日本公布把它作为第五代计算机的核心语言,更引起了世界上发达国家的专家、学者们的关注。目前,一些国家的大、中、小学相继开设此课。

PROLOG语言有以下几个特点:1.它是一种逻辑型说明性语言,能够直接描述问题本身,而不必象传统的过程型语言(如BASIC、FORTRAN和PASCAL等)那样必须告诉计算机解决问题的具体步骤。通俗地讲,在解决问题时,PROLOG语言只需提出“做什么”就够了,系统会确定如何求解,而不必像过程型语言告诉计算机“怎样做”。所以PROLOG语言比过程型语言更接近人的智能。2.PROLOG语言的句法简单,且可进行人机对话。由于PROLOG语言能描述问题的逻辑关系,因此用它编写的源程序就十分精炼。有人统计过,解决同样一个问题,PROLOG源程序的长度通常只为PASCAL程序的十分之一。3.PROLOG能够进行演绎推理。4.具有自动搜索、模式匹配和回溯等功能。

PROLOG仅有三种基本语句:事实、规则和询问。

1.事实:其一般格式为

谓词(对象,对象…,对象)。其中,对象由用户自己定义,谓词被用来说明对象之间的关系。事实语句表示一个事实,例如:likes(Tom,tennis)。意思是汤姆喜欢网球。

2.规则:其格式为

规则头 if 子目标,子目标……子目标。

其中规则头和各子目标的格式与事实语句相同。如果语句中的各子目标的条件事实均满足,那么规则头的事实也成立。例如:likes(Biu,X)if likes(Tom,X)。表示如果汤姆喜欢什么,比尔也喜欢什么。

3.询问(又称为目标):其一般格式为

goal;目标,目标,…,目标。表示向计算机询问,其中每个目标的格式与事实格式相同。

PROLOG系统一般有几十个定义了的标准谓词,用户可直接引用,此外,谓词还可由用户自己定义。

PROLOG程序的执行过程是:根据用户提出的询问,在程序中从上往下自动搜索,寻找与询问相匹配(一致)的事实或规则头,若与某一事实匹配,则成功;若与某一规则头匹配,则生成若干新的子询问。再对新的子询问在程序中重复上述搜索过程,直到所有子询问均与事实匹配为止。至此用户询问成功,成功后系统将在屏幕上作出回答。

PROLOG的应用范围很广,可用来控制和监视工业过程,能实现动态的关系数据库,也可用于编写管理程序,尤其是用它编写游戏、智力题程序,更是简洁生动。目前,PROLOG语言主要应用于数学定理证明、非数值处理、自然语言理解和专家系统等人工智能领域。