VisualProlog编程.ppt

  1. 1、本文档共149页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章 Visual Prolog编程 本章介绍基于Visual Prolog编程方面的知识,主要内容包括Visual Prolog基础、Visual Prolog的GUI编程、Visual Prolog的逻辑层、Visual Prolog的数据层。 第7章 Visual Prolog编程 7.1 Visual Prolog基础 7.2 Visual Prolog的GUI编程 7.3 Visual Prolog的逻辑层 7.4 Visual Prolog的数据层 本章小结与习题 7.1 Visual Prolog基础 传统的Prolog与Visual Prolog 6之间的差别主要体现在如下几个方面: 1)程序结构 很明显,传统Prolog中所使用的结构与Visual Prolog 6中使用的结构,在理解的难易程度方面不同。主要包括如何规划来自定义(definitions)的声明(declarations),以及如何简要地说明程序必须使用指定关键字 (keywords)进行查找的主目标Goal。 2)文件考虑 Visual Prolog 6提供了各种工具,以便将程序结构组织成不同类型的文件。 3)作用域访问 Visual Prolog 6可以挑选在其他模块中通过使用称为作用域标识(Scope identification)的概念而开发出来的功能。 4)面向对象 Visual Prolog 6程序可以编写成面向对象的程序,使用标准的面向对象特性。 7.1 Visual Prolog基础 7.1.1 程序结构 7.1.2 目标Goal 7.1.3 文件考虑 7.1.4 作用域访问 7.1.5 面向对象 7.1.6 一个完整的例子:family1.prj6 7.1.7 程序的取舍 7.1.8 小结 7.1.1 程序结构 Visual Prolog的程序,从结构上讲,主要包括若干个段,即论域段、谓词段、子句段、目标段等。Visual Prolog作为强类型的编译型语言,通常用论域段和谓词段来给出有关的声明或定义。 7.1.1.1 声明与定义 声明(Declaration)与定义(Definition)有着不同的含义。 在Prolog中,当需要使用一个谓词的时候,就可以直接使用,无需事先向Prolog推理机做任何的通告。例如,在前面的例子中,grandFather谓词的子句就是利用传统的Prolog的谓词头和谓词体结构直接写下来的。我们不用在代码中再告知推理机这个谓词结构是后面需要使用的。 类似地,当在传统的Prolog中使用一个复合论域时,无须首先告诫Prolog推理机关于使用该论域有何意图。只要感到需要,就可以直接使用一个论域。 然而,在Visual Prolog 6中,在编写一个谓词的子句体代码之前,我们必须首先对编译器声明这样一个谓词的存在。类似地,在使用任何论域之前,也必须先进行声明,以便将这些论域的存在告知编译器。 7.1.1.1 声明与定义 在Visual Prolog 6中需要这种预先告知功能的原因本质上是为了保证将运行时间异常(running exceptions)尽可能地转变为编译时间错误(compile time errors)。 对于“运行时间异常”,我们指的是只在运行所编译的程序期间出现的问题。例如,如果我们想使用一个整数作为一个函数的参数,但是却错误地使用了实数,这就会成为一个运行错误(这大都出现在使用其他编译器的程序中,但不是在Visual Prolog 6中),程序就会因此而失败。 当声明已定义的谓词和论域时,这类位置语法,即哪一个参变量属于哪一个论域,就会对编译器起作用。因此,当Visual Prolog 6 执行编译时,它将比较彻底的检查程序,以发现诸如此类的语法错误及其它错误。 7.1.1.1 声明与定义 由于Visual Prolog 6 的这些特性,整个程序的效率因此提高了。程序员不必等到程序实际执行时才发现错误。事实上,对于实际编写程序的人,将体会到这大大地节约了时间。通常,运行时导致发生运行时间异常的条件如此难以捉摸,以致于错误可能会在很多年后才被发现,或者会在许多特别重要的情况或令人尴尬的场合表现出来。 所有这些表明,编码中存在的论域和谓词要在定义前给出合适的声明,以给编译器详尽的指示。 7.1.1.2 关键字 一个Visual Prolog 6 的程序包括一组被标点分为不同部分的代码,由特定的关键字告诉编译程序所要生成的类型。例如,关键字可以将谓词和论域的定

文档评论(0)

wuyoujun92 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档