visual_prolog编程

visual_prolog编程

ID:20661138

大小:1.14 MB

页数:149页

时间:2018-10-14

visual_prolog编程_第1页
visual_prolog编程_第2页
visual_prolog编程_第3页
visual_prolog编程_第4页
visual_prolog编程_第5页
资源描述:

《visual_prolog编程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第7章VisualProlog编程本章介绍基于VisualProlog编程方面的知识,主要内容包括VisualProlog基础、VisualProlog的GUI编程、VisualProlog的逻辑层、VisualProlog的数据层。第7章VisualProlog编程7.1VisualProlog基础7.2VisualProlog的GUI编程7.3VisualProlog的逻辑层7.4VisualProlog的数据层本章小结与习题7.1VisualProlog基础传统的Prolog与VisualProlog6之间的差别主要体现在如下几

2、个方面:1)程序结构很明显,传统Prolog中所使用的结构与VisualProlog6中使用的结构,在理解的难易程度方面不同。主要包括如何规划来自定义(definitions)的声明(declarations),以及如何简要地说明程序必须使用指定关键字(keywords)进行查找的主目标Goal。2)文件考虑VisualProlog6提供了各种工具,以便将程序结构组织成不同类型的文件。3)作用域访问VisualProlog6可以挑选在其他模块中通过使用称为作用域标识(Scopeidentification)的概念而开发出来的功能。4)

3、面向对象VisualProlog6程序可以编写成面向对象的程序,使用标准的面向对象特性。7.1VisualProlog基础7.1.1程序结构7.1.2目标Goal7.1.3文件考虑7.1.4作用域访问7.1.5面向对象7.1.6一个完整的例子:family1.prj67.1.7程序的取舍7.1.8小结7.1.1程序结构VisualProlog的程序,从结构上讲,主要包括若干个段,即论域段、谓词段、子句段、目标段等。VisualProlog作为强类型的编译型语言,通常用论域段和谓词段来给出有关的声明或定义。7.1.1.1声明与定义声明(

4、Declaration)与定义(Definition)有着不同的含义。在Prolog中,当需要使用一个谓词的时候,就可以直接使用,无需事先向Prolog推理机做任何的通告。例如,在前面的例子中,grandFather谓词的子句就是利用传统的Prolog的谓词头和谓词体结构直接写下来的。我们不用在代码中再告知推理机这个谓词结构是后面需要使用的。类似地,当在传统的Prolog中使用一个复合论域时,无须首先告诫Prolog推理机关于使用该论域有何意图。只要感到需要,就可以直接使用一个论域。然而,在VisualProlog6中,在编写一个谓词

5、的子句体代码之前,我们必须首先对编译器声明这样一个谓词的存在。类似地,在使用任何论域之前,也必须先进行声明,以便将这些论域的存在告知编译器。7.1.1.1声明与定义在VisualProlog6中需要这种预先告知功能的原因本质上是为了保证将运行时间异常(runningexceptions)尽可能地转变为编译时间错误(compiletimeerrors)。对于“运行时间异常”,我们指的是只在运行所编译的程序期间出现的问题。例如,如果我们想使用一个整数作为一个函数的参数,但是却错误地使用了实数,这就会成为一个运行错误(这大都出现在使用其他编

6、译器的程序中,但不是在VisualProlog6中),程序就会因此而失败。当声明已定义的谓词和论域时,这类位置语法,即哪一个参变量属于哪一个论域,就会对编译器起作用。因此,当VisualProlog6执行编译时,它将比较彻底的检查程序,以发现诸如此类的语法错误及其它错误。7.1.1.1声明与定义由于VisualProlog6的这些特性,整个程序的效率因此提高了。程序员不必等到程序实际执行时才发现错误。事实上,对于实际编写程序的人,将体会到这大大地节约了时间。通常,运行时导致发生运行时间异常的条件如此难以捉摸,以致于错误可能会在很多年后

7、才被发现,或者会在许多特别重要的情况或令人尴尬的场合表现出来。所有这些表明,编码中存在的论域和谓词要在定义前给出合适的声明,以给编译器详尽的指示。7.1.1.2关键字一个VisualProlog6的程序包括一组被标点分为不同部分的代码,由特定的关键字告诉编译程序所要生成的类型。例如,关键字可以将谓词和论域的定义和声明区分开。通常,每一部分由一关键字开始,在每一部分结束时,一般没有关键字指示。新的关键字的出现表明前一部分的结束和下一部分的开始。对这一规则的例外是关键字“implement”和“endimplement”,在这两个关键字中

8、间的代码表示它们属于一个特殊的类。若有人不懂类的概念,可以把它看作程序的一个模块或一个部分。在本节中,我们将只介绍下述关键字。同样我们给出了这些关键字的用途,具体的句法可以从文档资料中学到。VisualProlog6中还

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

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

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