对prolog语言的基本了解
-
概念: prolog语言是一种逻辑程序设计语言,是人工智能序设计语言族中最为广泛的一种语言,它能通过规则自动寻求问题的解。
-
语句分类: prolog语言的基本语句有三类:
-
(1)事实:表达对象之间已知的基本事实;
-
(2)规则:表达对象之间的推理关;
-
(3)询问:用来询问对象之间的关系。
-
prolog的主要特点:
-
(1)prolog 是一种描述性语言。在用prolog 语句描述了基本事实和规则之后,我们就可以向prolog 提出询问,要求它做什么,而未告诉它如何做,而具体怎样去做(求解)是由prolog内部的推理机制自动进行的。这一点是与常用程序语言如BASIC、PASCAL和C等有很大不同。用这些常用语言求解问题时不但要求它做什么,还要告诉它如何做。由于这一特点,prolog的序简捷易懂,有人做出统计,解决同一问题,用prolog 编程的行数大约只是用PASCAL.编程行数的十分之一;
-
(2)prolog的数据和程序在结构上是统一的。prolog 只提供一种数据结构,称之为项,所有的数据和程序都是由项构成的。并且是树形结构。prolog 中的项要比 LISP 中的表达能力更强;
-
(3) prolog内部的推理机制是搜索、匹配和回溯。prolog 在对问题求解时,先自上面下地搜索数据库,自动进行模式匹配,当所匹配的子句(对于规则)有多个目标时,则要从左向右逐个满足目标,若其中某一目标失败时或用户要求寻找另一解答时就要引起回溯。总之prolog采用的是目标驱动的反向推理和深度优先的搜索方法。prolog 是以一阶谓词演算为基础的,因此它是一种逻辑程序设计语言;
-
(4)Prolog的递归性。Prolog的递归性体现在两个方面,一方面是它的数据定义具有递归性。另一方面是处理这些数据的程序也往往是递归的。由于递归性,使得Prolog的程序更加简洁明了,但同时也使它的时空性能较差,Prolog 程序在执行过程中往往要占用大量的存贮单元和用较长的时间;
-
(5)Prolog是面向非数值计算的。由于Prolog 是面向符号处理等非数值计算领域,因此它在数值计算方面显然不如过程性语言如 FORTRAN、PASCAL和C等。反过来 FORTRAN、PASCAL 和 C语言在符号处理等推理软件开发中不如Prolog,由于Prolg的推理机制,要用它设计出高质量的实用软件来需要对它内部处理机制有所了解,这样才能把握住它。