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语言主要应用于数学定理证明、非数值处理、自然语言理解和专家系统等人工智能领域。