第二部分:第7章Ⅵ sual Prolog编程 7.1.1.2关键字 domains 这个关键字用来标明程序中将要用到的论域。这种论域声明的句法中有许多变量 的声明,用来指示许多将来在程序中要用到的论域。因为本节介绍 Visua| Prolog 基础性内容,我们将不对论域的具体细节进行讨论。 总结一下,我们将声明那些用于论域的算符和构成算符变元的论域,算符和复合 论域在本书的前面章节部分有详细解释。 Class facts 这个关键字指定一个段,这个段用来声明将在程序代码中出现的事实。每一个事 实由一个符号化的名字声明每个事实的变元和各个变元所属的论域 2004.11.3 A|程序设计
2004.11.3 AI程序设计 11 第二部分:第7章 Visual Prolog编程 7.1.1.2 关键字 domains 这个关键字用来标明程序中将要用到的论域。这种论域声明的句法中有许多变量 的声明,用来指示许多将来在程序中要用到的论域。因为本节介绍Visual Prolog 基础性内容,我们将不对论域的具体细节进行讨论。 总结一下,我们将声明那些用于论域的算符和构成算符变元的论域,算符和复合 论域在本书的前面章节部分有详细解释。 Class facts 这个关键字指定一个段,这个段用来声明将在程序代码中出现的事实。每一个事 实由一个符号化的名字声明每个事实的变元和各个变元所属的论域
第二部分:第7章Ⅵ sual Prolog编程 7.1.1.2关键字 Class predicates 这一段将包含在子句部分被定义的谓词的声明。同样,谓词的名称以及变元和论 域也在这一段中被声明。 Clauses 在 Visual Prolog6代码的所有部分中,这一部分和传统的 Prolog程序最为相似, 它包含对已声明谓词的定义,我们会发现在这里使用的谓词与 class predicates 部分中声明的谓词句法相同。 Goal 这一段定义是 Visual Prolog6程序的主要入口点。更详细的解释在下面给出。 2004.11.3 A|程序设计 12
2004.11.3 AI程序设计 12 第二部分:第7章 Visual Prolog编程 7.1.1.2 关键字 Class predicates 这一段将包含在子句部分被定义的谓词的声明。同样,谓词的名称以及变元和论 域也在这一段中被声明。 Clauses 在 Visual Prolog 6代码的所有部分中,这一部分和传统的Prolog 程序最为相似, 它包含对已声明谓词的定义,我们会发现在这里使用的谓词与 class predicates 部分中声明的谓词句法相同。 Goal 这一段定义是Visual Prolog 6程序的主要入口点。更详细的解释在下面给出
第二部分:第7章Ⅵ sual Prolog编程 7.1.2目标Goa 在传统的 Prolog中,只要谓词在代码中被定义了, Prolog核心程 序就会被引导从那个谓词开始程序的执行。但是,在 Visual Prolog6 中不是这样,作为一个编译程序,它要生成高效率的程序执行代码。在 编译程序工作的时候,代码事实上并未被执行。所以,编译程序需要事 先知道程序从哪个谓词开始执行,这样当程序被调用执行时,它就能从 正确的地方开始。正如我们所期望的那样,这个编译好的程序可以再不 需要Ⅴ isual Prolog编译程序和VDE而独立运行 为了实现这些功能,有一个专门由关键字goa指示的段。把它们 作为没有自变量的特殊谓词考虑,这种谓词就是程序开始执行的地方。 2004.11.3 A|程序设计 13
2004.11.3 AI程序设计 13 第二部分:第7章 Visual Prolog编程 7.1.2 目标Goal 在传统的Prolog中,只要谓词在代码中被定义了,Prolog核心程 序就会被引导从那个谓词开始程序的执行。但是,在Visual Prolog 6 中不是这样,作为一个编译程序,它要生成高效率的程序执行代码。在 编译程序工作的时候,代码事实上并未被执行。所以,编译程序需要事 先知道程序从哪个谓词开始执行,这样当程序被调用执行时,它就能从 正确的地方开始。正如我们所期望的那样,这个编译好的程序可以再不 需要Visual Prolog编译程序和VDE而独立运行。 为了实现这些功能,有一个专门由关键字goal指示的段。把它们 作为没有自变量的特殊谓词考虑,这种谓词就是程序开始执行的地方
第二部分:第7章Ⅵ sual Prolog编程 7.1.3文件考虑 通常,将程序的所有部分放在一个文件里是很麻烦的,这样会使程 序难于理解,甚至有时会产生错误。 Visual prolog6使用VDE可以 将程序代码分成不同的文件,也可使用VDE将不同的代码写入不同的文 件。借助这种方式,通过查找文件就可将经常用到的程序段找到。如果 在许多文件中都要用到一个论域,那么可以在一个单独的文件中声明这 个论域,然后这个文件可以被其他文件所访问。 然而,为了简化这个专门教程,我们应该主要使用一个文件写这些 代码。在构造程序的过程中,ⅤDE可以自动生成更多当时可以忽略的 程序,我们将在以后的内容中学到。 2004.11.3 A|程序设计 14
2004.11.3 AI程序设计 14 第二部分:第7章 Visual Prolog编程 7.1.3 文件考虑 通常,将程序的所有部分放在一个文件里是很麻烦的,这样会使程 序难于理解,甚至有时会产生错误。Visual Prolog 6 使用VDE可以 将程序代码分成不同的文件,也可使用VDE 将不同的代码写入不同的文 件。借助这种方式,通过查找文件就可将经常用到的程序段找到。如果 在许多文件中都要用到一个论域,那么可以在一个单独的文件中声明这 个论域,然后这个文件可以被其他文件所访问。 然而,为了简化这个专门教程,我们应该主要使用一个文件写这些 代码。在构造程序的过程中,VDE可以自动生成更多当时可以忽略的 程序,我们将在以后的内容中学到
第二部分:第7章Ⅵ sual Prolog编程 7.1.4作用域访问 Visual Prolog6将整个程序划分为不同的部分,每一部分定义 个类。在面向对象的程序语言中,类是一组程序代码和与之相关的数 据的集合。这些内容在以后的叙述中将进行更多的解释。像前面提到 的一样,对于不熟悉面向对象程序语言的学习者,可以将类类似地考 虑为模块。通常, Visual Prolog6在自己专门的文件中定义各个类。 在程序执行的过程中,程序经常需要调用在另一个类中定义的谓词。 相似地,在一个类中定义的数据和论域可能需要允许能被另一个不同 的文件所访问 2004.11.3 A|程序设计 15
2004.11.3 AI程序设计 15 第二部分:第7章 Visual Prolog编程 7.1.4 作用域访问 Visual Prolog 6将整个程序划分为不同的部分,每一部分定义一 个类。在面向对象的程序语言中,类是一组程序代码和与之相关的数 据的集合。这些内容在以后的叙述中将进行更多的解释。像前面提到 的一样,对于不熟悉面向对象程序语言的学习者,可以将类类似地考 虑为模块。通常,Visual Prolog 6在自己专门的文件中定义各个类。 在程序执行的过程中,程序经常需要调用在另一个类中定义的谓词。 相似地,在一个类中定义的数据和论域可能需要允许能被另一个不同 的文件所访问