1、Visual Prolog 语言专题网页: kddxy/lei/VIP.htmlWeb Page (主页): kddxy/lei/Email: leiieee.orgPhone: 89726 (O), 89244(O)Office time: by appointment主 要 内 容一、概一、概 述述二、二、Visual Prolog与与Prolog 三、三、Prolog能作何用能作何用四、四、Visual Prolog的特点的特点五、五、Prolog与其它语言有何差别与其它语言有何差别?六、关于六、关于Visual Prolog资料资料七、系统需求七、系统需求主 要 内 容一、概一、概 述
2、述二、二、Visual Prolog与与Prolog 三、三、Prolog能作何用能作何用四、四、Visual Prolog的特点的特点五、五、Prolog与其它语言有何差别与其它语言有何差别?六、关于六、关于Visual Prolog资料资料七、系统需求七、系统需求 PrologProlog语言是人工智能与专家系统领域最著名的逻语言是人工智能与专家系统领域最著名的逻辑程序设计语言。辑程序设计语言。Visual PrologVisual Prolog意指可视化逻辑程序设意指可视化逻辑程序设计语言,是基于计语言,是基于PrologProlog语言的可视化集成开发环境,是语言的可视化集成开发环境,
3、是PrologProlog开发中心(开发中心(PDCPDC)最新推出的基于)最新推出的基于WindowsWindows环境的环境的智能化编程工具,其语言特性符合相应的国际标准智能化编程工具,其语言特性符合相应的国际标准ISO/IEC 13211-1:2019ISO/IEC 13211-1:2019。是国际上研究和开发智能化应是国际上研究和开发智能化应用的主流工具之一。用的主流工具之一。预计不长时期内,预计不长时期内,Visual PrologVisual Prolog将将会在我国流行开来,并将迅速成为我国研究和开发智能会在我国流行开来,并将迅速成为我国研究和开发智能化应用的主流工具。化应用的主
4、流工具。一、一、 概概 述述 V i s u a l P r o l o gV i s u a l P r o l o g 具 有 模 式 匹 配 、 递 归 、 回 溯具 有 模 式 匹 配 、 递 归 、 回 溯(backtrack)(backtrack)、对象机制、事实数据库和谓词库等强大功、对象机制、事实数据库和谓词库等强大功能。它包含构建大型应用程序所需要的一切特性:图形能。它包含构建大型应用程序所需要的一切特性:图形开发环境、编译器、连接器和调试器,支持模块化和面开发环境、编译器、连接器和调试器,支持模块化和面向对象程序设计,支持系统级编程、文件操作、字符串向对象程序设计,支持系统
5、级编程、文件操作、字符串处理、位级运算、算术与逻辑运算,以及与其它编程语处理、位级运算、算术与逻辑运算,以及与其它编程语言的接口。言的接口。 Visual PrologVisual Prolog包含一个大型库,捆绑了范围广阔的包含一个大型库,捆绑了范围广阔的APIAPI函数:包括函数:包括Windows GUIWindows GUI函数族、函数族、ODBC/OCIODBC/OCI数据库函数据库函数族和数族和InternetInternet函数族(函数族(socketsocket、ftpftp、httphttp、cgicgi等)等)。开发环境全部使用。开发环境全部使用Visual PrologV
6、isual Prolog语言写成,而且包含语言写成,而且包含对话框、菜单、工具栏等若干编码专家和图形编辑器。对话框、菜单、工具栏等若干编码专家和图形编辑器。一、一、 概概 述述 Visual PrologVisual Prolog非常适合于专家系统、规划和其它非常适合于专家系统、规划和其它AIAI相关问题的求解,是智能程序设计语言中具有代表性且相关问题的求解,是智能程序设计语言中具有代表性且应用较多的一种程序设计语言。由于这种语言很适合表应用较多的一种程序设计语言。由于这种语言很适合表达人的思维和推理规则,在自然语言理解、机器定理证达人的思维和推理规则,在自然语言理解、机器定理证明、专家系统等
7、方面得到了广泛的应用,在智能程序设明、专家系统等方面得到了广泛的应用,在智能程序设计语言中占有相当重要的地位。计语言中占有相当重要的地位。Visual PrologVisual Prolog不仅是优不仅是优秀的智能化应用开发工具,而且与秀的智能化应用开发工具,而且与SQLSQL数据库系统、数据库系统、Visual C+Visual C+或其它或其它C+C+开发系统、开发系统、Visual BasicVisual Basic、DelphiDelphi或或Visual AgeVisual Age等编程语言一样,已经成为适用于任何应等编程语言一样,已经成为适用于任何应用领域的强有力的通用开发工具。用
8、领域的强有力的通用开发工具。一、一、 概概 述述 智能化是当前计算机、自动化、通信、管理等信息科智能化是当前计算机、自动化、通信、管理等信息科学技术领域中的新方法、新技术、新产品的重要发展方向学技术领域中的新方法、新技术、新产品的重要发展方向与开发策略之一。信息处理的智能化与信息社会对智能的与开发策略之一。信息处理的智能化与信息社会对智能的巨大需求是人工智能发展的强大动力。人工智能与专家系巨大需求是人工智能发展的强大动力。人工智能与专家系统曾取得过许多令人注目的成果,也走过不少弯路,经历统曾取得过许多令人注目的成果,也走过不少弯路,经历过不少挫折。近几年来,随着计算机与网络通信技术的迅过不少挫
9、折。近几年来,随着计算机与网络通信技术的迅猛发展,特别是因特网的大规模普及,人工智能与专家系猛发展,特别是因特网的大规模普及,人工智能与专家系统的研究再度活跃起来,并正向更为广泛的领域发展。围统的研究再度活跃起来,并正向更为广泛的领域发展。围绕人工智能与专家系统的研究和应用开发也迎来一个蓬勃绕人工智能与专家系统的研究和应用开发也迎来一个蓬勃发展的新时期。发展的新时期。一、一、 概概 述述主 要 内 容一、概一、概 述述二、二、Visual Prolog与与Prolog 三、三、Prolog能作何用能作何用四、四、Visual Prolog的特点的特点五、五、Prolog与其它语言有何差别与其它
10、语言有何差别?六、关于六、关于Visual Prolog资料资料七、系统需求七、系统需求 PrologProlog是全世界计算机科学家多年来研究工作的结晶。是全世界计算机科学家多年来研究工作的结晶。P r o l o gP r o l o g 的 第 一 个 正 式 版 本 由 法 国 马 赛 大 学的 第 一 个 正 式 版 本 由 法 国 马 赛 大 学 A l a i n A l a i n ColmerauerColmerauer于于7070年代作为一种逻辑程序设计工具研制。其年代作为一种逻辑程序设计工具研制。其结果是诞生了一种远比当今结果是诞生了一种远比当今PascalPascal和
11、和C C这样著名的编程语言这样著名的编程语言功能更加强大的语言。一个特定应用的功能更加强大的语言。一个特定应用的PrologProlog程序典型情程序典型情况下只需要对应况下只需要对应C+C+程序的十分之一程序行。程序的十分之一程序行。 今天,今天,PrologProlog是人工智能应用编程和专家系统开发的一是人工智能应用编程和专家系统开发的一个非常重要的工具。更多的个非常重要的工具。更多的“用户友好性用户友好性”和智能化程序和智能化程序的要求是使的要求是使PrologProlog流行起来的另一个原因。流行起来的另一个原因。 PrologProlog最重要的好处是非常公平地适用于任何应用领最重
12、要的好处是非常公平地适用于任何应用领域:通过让程序员建立对象和进程之间的逻辑关系,复域:通过让程序员建立对象和进程之间的逻辑关系,复杂问题更容易从本质上求解,而且产生的程序在其生命杂问题更容易从本质上求解,而且产生的程序在其生命周期更容易维护。定制知识库、专家系统、自然语言接周期更容易维护。定制知识库、专家系统、自然语言接口和智能信息管理系统这些应用都是当前使用口和智能信息管理系统这些应用都是当前使用Visual Visual PrologProlog进行程序设计的领域范围。进行程序设计的领域范围。 PrologProlog已经走出了人工智能实验室,已经走出了人工智能实验室,PDCPDC的的V
13、isual Visual PrologProlog是一个商业上富有竞争的通用开发环境。是一个商业上富有竞争的通用开发环境。Visual Visual PrologProlog因其容易增加程序甚至网站的智能化特性而日益因其容易增加程序甚至网站的智能化特性而日益变成许多开发者选择的工具。变成许多开发者选择的工具。 PrologProlog是一种众所周知的说明性语言。这就是说,给出是一种众所周知的说明性语言。这就是说,给出所需要的事实和规则,所需要的事实和规则,PrologProlog将使用演绎推理求解编程问将使用演绎推理求解编程问题。这与传统的过程性编程语言如题。这与传统的过程性编程语言如C C、
14、BASICBASIC和和PascalPascal等形等形成了鲜明的对照。在过程性语言中,程序员必须提供一步成了鲜明的对照。在过程性语言中,程序员必须提供一步一步的指令,准确地告诉计算机如何求解给定的问题。换一步的指令,准确地告诉计算机如何求解给定的问题。换句话说,程序员必须预先知道如何求解这个问题。另一方句话说,程序员必须预先知道如何求解这个问题。另一方面,面,PrologProlog程序员只需要提供对问题的描述和求解的基本程序员只需要提供对问题的描述和求解的基本规则。此后,规则。此后,PrologProlog系统将确定如何找到一个解。系统将确定如何找到一个解。 PrologProlog鼓励程
15、序员从结构良好的问题描述开始,因而实鼓励程序员从结构良好的问题描述开始,因而实际上,际上,PrologProlog也可以被用作指定产品的规格说明工具和实也可以被用作指定产品的规格说明工具和实现工具。现工具。 Visual PrologVisual Prolog是是PDC PrologPDC Prolog和和Turbo PrologTurbo Prolog的后继的后继产品。在微机上,产品。在微机上,Visual PrologVisual Prolog是基于是基于WindowsWindows环境的,环境的,而早期的而早期的PDC PrologPDC Prolog和和Turbo PrologTurb
16、o Prolog是基于是基于DOSDOS环境的。环境的。Visual PrologVisual Prolog特别适合于处理知识和知识问题求解,是特别适合于处理知识和知识问题求解,是优秀的智能化应用开发工具。同时也已经成为适合于任何优秀的智能化应用开发工具。同时也已经成为适合于任何应用领域的通用开发工具。应用领域的通用开发工具。 PDCPDC的的Visual PrologVisual Prolog特别适用于这些传统类型的数据特别适用于这些传统类型的数据库任务,因为库任务,因为Visual PrologVisual Prolog具有的编程能力之一就是十具有的编程能力之一就是十分易于使用的数据库引擎
17、。分易于使用的数据库引擎。 Visual PrologVisual Prolog由于高度优化的编译器,创建的程由于高度优化的编译器,创建的程序非常快,几乎与基于序非常快,几乎与基于C+C+的应用程序一样快。的应用程序一样快。 WebWeb编程支持和对象机制这两种功能是对编程支持和对象机制这两种功能是对Visual Visual PrologProlog商用有效性的巨大贡献。对象机制本身就是一种商用有效性的巨大贡献。对象机制本身就是一种非常强大的建模工具,几乎已经成了非常强大的建模工具,几乎已经成了PascalPascal、C+C+、SmalltalkSmalltalk等语言的一种事实上的标准。
18、等语言的一种事实上的标准。WebWeb编程支持是编程支持是一个重要的新特性。一个重要的新特性。 譬如,用譬如,用Visual PrologVisual Prolog写的专家系统,可以被连接写的专家系统,可以被连接到到WebWeb页,在支持部门、网上贸易和其它一些基于页,在支持部门、网上贸易和其它一些基于WebWeb技技术的开发等方面将发挥重要作用。术的开发等方面将发挥重要作用。主 要 内 容一、概一、概 述述二、二、Visual Prolog与与Prolog 三、三、Prolog能作何用能作何用四、四、Visual Prolog的特点的特点五、五、Prolog与其它语言有何差别与其它语言有何差
19、别?六、关于六、关于Visual Prolog资料资料七、系统需求七、系统需求三、三、PrologProlog能作何用能作何用? ?3.1 3.1 人工智能应用人工智能应用 PrologProlog最初是作为一种人工智能(最初是作为一种人工智能(AIAI)语言设计的,)语言设计的,它非常适合于专家系统和类似的它非常适合于专家系统和类似的AIAI应用。框架和基于规则应用。框架和基于规则的系统,前向链和后向链,模式匹配机制,约束求解机制的系统,前向链和后向链,模式匹配机制,约束求解机制,都是自然而精致的,都是自然而精致的PrologProlog潜在语义的表达式。潜在语义的表达式。 PDCPDC的用
20、户已经在银行、航空、健康、保险、医疗、工的用户已经在银行、航空、健康、保险、医疗、工业等广泛的领域建成咨询系统、决策支持、诊断、专家系业等广泛的领域建成咨询系统、决策支持、诊断、专家系统外壳或自然语言应用程序。统外壳或自然语言应用程序。3.2 3.2 其它领域的应用其它领域的应用 PrologProlog的能力已经延伸到的能力已经延伸到AIAI之外。高级抽象,表之外。高级抽象,表示复杂数据结构的易用性和简明性,使得编程的说明示复杂数据结构的易用性和简明性,使得编程的说明性方法有益于任何学科或问题求解策略。性方法有益于任何学科或问题求解策略。 基于这个原因,基于这个原因,Visual Prolo
21、gVisual Prolog已经广泛用来建造已经广泛用来建造行政事务、高级数据库管理、规划和调度系统、基于行政事务、高级数据库管理、规划和调度系统、基于WebWeb的应用等等。的应用等等。主 要 内 容一、概一、概 述述二、二、Visual Prolog与与Prolog 三、三、Prolog能作何用能作何用四、四、Visual Prolog的特点的特点五、五、Prolog与其它语言有何差别与其它语言有何差别?六、关于六、关于Visual Prolog资料资料七、系统需求七、系统需求四、四、Visual PrologVisual Prolog的特点的特点1. 1. 可视化开发环境可视化开发环境
22、可视化开发环境(可视化开发环境(VDE)把编译器与编辑器、资源工)把编译器与编辑器、资源工具箱、资源和应用专家、交互式建造工具和各种浏览工具具箱、资源和应用专家、交互式建造工具和各种浏览工具等结合在一起。等结合在一起。 在交互式、可视化地创建用户接口部件之后,就自动在交互式、可视化地创建用户接口部件之后,就自动生成了一个运行原型。应用程序专家为一个项目创建所需生成了一个运行原型。应用程序专家为一个项目创建所需要的全部文件,资源专家知道如何生成要的全部文件,资源专家知道如何生成Prolog代码,以支代码,以支持所选择的全部资源。持所选择的全部资源。 设计设计VDE是为了使开发应用程序更加容易、方
23、便和快是为了使开发应用程序更加容易、方便和快捷,这些应用程序是基于每一个本地操作系统提供标准接捷,这些应用程序是基于每一个本地操作系统提供标准接口的高级抽象。口的高级抽象。2.2.编码专家编码专家 编码专家创建并维护编码专家创建并维护PrologProlog的控件资源代码。的控件资源代码。Visual PrologVisual Prolog最大的强项可能是把布局设计工具(最大的强项可能是把布局设计工具(LayoutLayout)和编码专家结合在一起。编码专家完成大部分工)和编码专家结合在一起。编码专家完成大部分工作,就是说,你可以在几分钟之内创建一个应用程序,然作,就是说,你可以在几分钟之内创
24、建一个应用程序,然后从这个原型逐渐增强到最终的应用程序。后从这个原型逐渐增强到最终的应用程序。3.3.生成和配置项目的应用程序专家生成和配置项目的应用程序专家 应用程序专家能生成一个新项目。它说明操作系统、应用程序专家能生成一个新项目。它说明操作系统、UI策略、策略、C编译器、伴随工具等各种各样的组合。当生成编译器、伴随工具等各种各样的组合。当生成一个新项目时,它将自动建立所有的基本工具,如帮助文一个新项目时,它将自动建立所有的基本工具,如帮助文件、工具栏、菜单等。件、工具栏、菜单等。应用程序专家应用程序专家4.4.资源集成编辑器资源集成编辑器 这些工具使得以交互方式可视化地设计和修改用户这些
25、工具使得以交互方式可视化地设计和修改用户接口成为可能。使用鼠标安排控件在对话框或窗口中的布接口成为可能。使用鼠标安排控件在对话框或窗口中的布局,设置访问属性。资源由窗口、对话框、位图、图标、局,设置访问属性。资源由窗口、对话框、位图、图标、光标和串等组成,它们是任何使用光标和串等组成,它们是任何使用GUIGUI的应用程序都需要的应用程序都需要的的. .5.5.引入资源的能力引入资源的能力 资源可以从资源可以从DLLDLL、应用程序、应用程序、RESRES文件及其它文件及其它Visual Visual PrologProlog项目引入。项目引入。6.6.语言敏感的文本编辑器语言敏感的文本编辑器
26、Visual Prolog包含现代开发环境中能找到的所有特包含现代开发环境中能找到的所有特性,例如功能强大的源代码编辑器,可以使性,例如功能强大的源代码编辑器,可以使Visual Prolog的关键字和其它语言元素的代码有不同的颜色。这些颜的关键字和其它语言元素的代码有不同的颜色。这些颜色能使谓词名、参数、注释等之间的差别更易于区分。色能使谓词名、参数、注释等之间的差别更易于区分。编辑器支持不受限制的撤消与重做设施、搜索与替换、编辑器支持不受限制的撤消与重做设施、搜索与替换、剪切、拷贝、粘贴、快速拖放移动块,甚至嵌入超文本剪切、拷贝、粘贴、快速拖放移动块,甚至嵌入超文本链接。此外,与以前的链接
27、。此外,与以前的PDC编辑器一样,程序员能够把编辑器一样,程序员能够把这个编辑器功能包括在自己的应用程序中。这个编辑器功能包括在自己的应用程序中。7.7.集成帮助生成器集成帮助生成器 内置的帮助创作系统使得很容易给出应用程序的联机内置的帮助创作系统使得很容易给出应用程序的联机帮助。这个帮助系统是基于帮助。这个帮助系统是基于PDCPDC的超文本抽象机(的超文本抽象机(HAMHAM)的)的。在帮助创作系统中,有可能在设计阶段交互式地输入文。在帮助创作系统中,有可能在设计阶段交互式地输入文本,用鼠标标记新的链接,跟随现有的链接。帮助系统能本,用鼠标标记新的链接,跟随现有的链接。帮助系统能够输出够输出
28、WindowsWindows的的.RTF.RTF格式,所以它可以生成本地的格式,所以它可以生成本地的WindowsWindows帮助系统。帮助系统。 HelpHelp编译器(如编译器(如HCW.EXEHCW.EXE)不包括在)不包括在Visual PrologVisual Prolog中中,但可以在,但可以在Visual C+Visual C+和和Borland C+Borland C+产品中找到。如果产品中找到。如果需要一个更新版本的需要一个更新版本的WindowsWindows帮助编译器,可以查看一下帮助编译器,可以查看一下ftp:/ftp.microsoft/Softlibftp:/ft
29、p.microsoft/Softlib目录。目录。Visual Prolog的帮助系统的帮助系统8.8.源代码浏览器源代码浏览器 Visual PrologVisual Prolog编译器为源代码浏览器产生信息,所编译器为源代码浏览器产生信息,所以,检查模块中的谓词、浏览项目中所有全局谓词,或以,检查模块中的谓词、浏览项目中所有全局谓词,或者查找任何谓词、论域声明或定义的位置,都是很方便者查找任何谓词、论域声明或定义的位置,都是很方便的。的。9.9.项目共享与源代码控制项目共享与源代码控制 对于对于VPVP可以使用源代码控制系统,如可以使用源代码控制系统,如Visual Visual Sour
30、ceSafeSourceSafe、PVCSPVCS和和MKSMKS,它使得很容易在几个项目之间,它使得很容易在几个项目之间共享源代码,也允许多个程序员从事同一项目。共享源代码,也允许多个程序员从事同一项目。10. 10. VP大型联机帮助参考信息大型联机帮助参考信息 这个帮助设施提供一个完全的这个帮助设施提供一个完全的VDEVDE操作指南和完整的操作指南和完整的基本基本PrologProlog语言及可视化编程扩展的参考信息。语言及可视化编程扩展的参考信息。11.11.可视化编程接口(可视化编程接口(VPIVPI) 一种可移植的一种可移植的Visual PrologVisual Prolog图形
31、用户接口(图形用户接口(GUIGUI)APIAPI已经定义。这个已经定义。这个APIAPI是一种抽象的设施,可以在基本是一种抽象的设施,可以在基本的的Windows 95/98/Me/XPWindows 95/98/Me/XP及及Windows NT/2000Windows NT/2000平台中找到平台中找到。可视化编程接口给。可视化编程接口给Visual PrologVisual Prolog程序员一个比本地编程序员一个比本地编程更可移植和更容易使用的程更可移植和更容易使用的GUI APIGUI API。然而,为了使用户。然而,为了使用户不受限制,不受限制,VPIVPI也包含不可移植的平台专
32、用设施和选件。也包含不可移植的平台专用设施和选件。12.12.高级高级GUIGUI部件部件 这些工具包括删格、树型窗口、这些工具包括删格、树型窗口、ExplorerExplorer视图、工视图、工具栏、制表对话框、高级报表处理等。具栏、制表对话框、高级报表处理等。13.13.快速而高度优化的编译器快速而高度优化的编译器 VPVP的编译器产生紧凑的本地代码,足以与的编译器产生紧凑的本地代码,足以与PascalPascal和和C C编译器所生成的代码媲美。编译器执行几种不同的分析编译器所生成的代码媲美。编译器执行几种不同的分析,范围从全局流程分析和确定性机制检查,向下到寄存,范围从全局流程分析和确
33、定性机制检查,向下到寄存器分配和偷窥优化。器分配和偷窥优化。 除了产生有效代码,编译器执行许多高级检查,检测除了产生有效代码,编译器执行许多高级检查,检测潜在的编译时间问题。主要是类型检验分析、全局流程潜在的编译时间问题。主要是类型检验分析、全局流程分析分析, ,确定性机制检查和可能的失败检测。确定性机制检查和可能的失败检测。编译器选件对话框编译器选件对话框14.14.检测编译时间错误的类型检查机制检测编译时间错误的类型检查机制 VPVP杰出的特性之一是其类型机制,它提供一个额外级杰出的特性之一是其类型机制,它提供一个额外级别的编程安全性。类型声明是资料性代码,有助于编译别的编程安全性。类型声
34、明是资料性代码,有助于编译器在开发的早期阶段指出创建的类型错误和更严重的逻器在开发的早期阶段指出创建的类型错误和更严重的逻辑错误辑错误。因此,通过比照程序员和开发系统之间的类型因此,通过比照程序员和开发系统之间的类型,使得类型声明有助于保证一个程序在整个产品生命周,使得类型声明有助于保证一个程序在整个产品生命周期的完整性。更进一步,这些声明帮助编译器生成的程期的完整性。更进一步,这些声明帮助编译器生成的程序更有效,在执行期间更节省存储空间。序更有效,在执行期间更节省存储空间。15.15.调试器调试器 当程序较大时,我们就会发现当程序较大时,我们就会发现VPVP的调试器是一个不可的调试器是一个不
35、可缺少的工具。调试器对编译出来的代码进行工作,允许缺少的工具。调试器对编译出来的代码进行工作,允许设置断点和单步执行代码。当单步执行代码时,可以检设置断点和单步执行代码。当单步执行代码时,可以检查变量的值及尚待证实的事实的内容。查变量的值及尚待证实的事实的内容。调调 试试 器器16.16.异常处理和错误陷阱异常处理和错误陷阱 VPVP包括功能强大的处理错误情况和控制用户中断的包括功能强大的处理错误情况和控制用户中断的机制。程序员可以在错误检查和错误报告的不同级别(机制。程序员可以在错误检查和错误报告的不同级别(0,1,2,3)上进行选择。)上进行选择。17.17.类和对象类和对象 人们常常在面
36、向对象和说明性编程语言之间进行辩人们常常在面向对象和说明性编程语言之间进行辩识,但在识,但在VPVP中,可以同时使用取自这两种范例的特性。中,可以同时使用取自这两种范例的特性。VPVP语言支持对象和类,在设计中与语言支持对象和类,在设计中与C+C+实现类似。实现类似。18.18.可移植性编码可移植性编码 VPVP系统可用于多种平台,并能为多种平台生成程序系统可用于多种平台,并能为多种平台生成程序。除了个别操作系统专用设施和限制之外,。除了个别操作系统专用设施和限制之外,PrologProlog代码代码在所有平台之间是可移植的。在所有平台之间是可移植的。19.19.开放式平台开放式平台 VPVP
37、很好地设计了与其它编程工具的接口。很好地设计了与其它编程工具的接口。VPVP能生成能生成其它语言可调用的例程,它本身也能够调用其它语言编其它语言可调用的例程,它本身也能够调用其它语言编写的例程。接口是通用的,而且支持所有产生标准写的例程。接口是通用的,而且支持所有产生标准.OBJ.OBJ模块的编译器。此外,模块的编译器。此外,VPVP程序还能够调用程序还能够调用DLLDLL,并被放在,并被放在DLLDLL内部。内部。 通过声明全局通过声明全局VPVP谓词为谓词为C C语言(或语言(或stdcallstdcall)调用约)调用约定,通过声明参数类型和输入输出流程模式,在定,通过声明参数类型和输入
38、输出流程模式,在VPVP和和C C之间不用特殊的胶合代码而直接调用之间不用特殊的胶合代码而直接调用C C例程(就象它们是例程(就象它们是PrologProlog代码一样)是完全可能的。这种接口在两个方向代码一样)是完全可能的。这种接口在两个方向上起作用,当谓词象上起作用,当谓词象C C语言那样声明时,它们能够被语言那样声明时,它们能够被C C语语言例程直接调用。言例程直接调用。GLOBAL PREDICATESprocedure LONG vpi_LoadDll( STRING ) - (i) language cprocedure vpi_FreeDll( LONG ) - (i) lang
39、uage cprocedure LONG vpi_GetDllProc( LONG,STRING ProcName ) - (i, i) language c20.20.集成集成MakeMake工具工具 MakeMake工具处理编译、连接、资源编辑和资源绑定等工具处理编译、连接、资源编辑和资源绑定等所有的复杂性。所有的复杂性。MakeMake工具检查时间邮戳,只编译所需要工具检查时间邮戳,只编译所需要的文件。为了显示项目的结构,可以把这种依赖关系显的文件。为了显示项目的结构,可以把这种依赖关系显示成一个树。示成一个树。Make工具工具21.21.功能强大的数据库子系统功能强大的数据库子系统 快
40、速而非常灵活的数据库子系统使快速而非常灵活的数据库子系统使Visual PrologVisual Prolog成成为一个比许多为一个比许多4GL4GL数据库应用更适当的选择。这个数据库数据库应用更适当的选择。这个数据库系统支持一个独特的系统支持一个独特的VPVP项的有序链的集合,而数据库的项的有序链的集合,而数据库的项可以是语言本身支持的任何抽象或数据结构,从简单项可以是语言本身支持的任何抽象或数据结构,从简单的记录到树或图。数据库系统能直接访问单个项,或经的记录到树或图。数据库系统能直接访问单个项,或经由项的链进行回溯,以产生或匹配特定值。由项的链进行回溯,以产生或匹配特定值。 数据库还支持
41、数据库还支持B+B+树,以提供快速数据检索和有效改变树,以提供快速数据检索和有效改变项排序的能力。项排序的能力。 如果正在如果正在LANLAN应用程序中使用数据库,就可以利用应用程序中使用数据库,就可以利用VPVP支持外部数据库系统的文件共享这个优点。通过使用一支持外部数据库系统的文件共享这个优点。通过使用一个机制,在交易内部有效地使文件访问串行化,从而提个机制,在交易内部有效地使文件访问串行化,从而提供多用户数据库访问。也就是说,一个数据库可以被几供多用户数据库访问。也就是说,一个数据库可以被几个用户或几个进程同时打开个用户或几个进程同时打开。VP支持的不同类型的数据库支持的不同类型的数据库
42、22.22.客户客户/ /服务器体系结构服务器体系结构 VPVP是一个建造客户是一个建造客户/ /服务器应用程序的功能强大的平服务器应用程序的功能强大的平台。其主要途径当前是台。其主要途径当前是TCP/IPTCP/IP绑定,也有可能是绑定,也有可能是WindowsWindows下的下的NETDDENETDDE。使用其中任何一种设施,程序员可以在单。使用其中任何一种设施,程序员可以在单个机器的多个进程之间,或在网络中分开的各机器程序个机器的多个进程之间,或在网络中分开的各机器程序之间,发送任意复杂的之间,发送任意复杂的PrologProlog项。数据库和逻辑服务器项。数据库和逻辑服务器可以用这种
43、设施容易地进行建造。可以用这种设施容易地进行建造。23. ODBC23. ODBC和可移植和可移植SQLSQL绑定绑定 VPVP的外部数据库常常是存储大量数据最快和最灵活的的外部数据库常常是存储大量数据最快和最灵活的途径。然而,数据可能在另一个数据库系统中已经存在途径。然而,数据可能在另一个数据库系统中已经存在,或者这个应用程序需要与其它仅仅使用特定数据库技,或者这个应用程序需要与其它仅仅使用特定数据库技术的应用程序共享数据。在这种情况下,能够连接到外术的应用程序共享数据。在这种情况下,能够连接到外部数据库变得非常重要,而部数据库变得非常重要,而Visual PrologVisual Prol
44、og与可移植与可移植SQLSQL的绑定将使这种情况对于大多数数据库来说得到简化。的绑定将使这种情况对于大多数数据库来说得到简化。可移植可移植SQLSQL绑定是基于绑定是基于ODBCODBC、OracleOracle的的OCIOCI库、或库、或DB2DB2的。的。对对WindowsWindows平台而言,平台而言,VPVP还包含更广泛的对还包含更广泛的对MicrosoftMicrosoft的的ODBC APIODBC API的直接绑定。的直接绑定。24.24.资料处理工具资料处理工具 PDCPDC的的DOCDOC工具为处理丰富的格式化资料提供一个高级工具为处理丰富的格式化资料提供一个高级抽象。用
45、抽象。用PrologProlog结构来表示资料使得不受实际格式限制结构来表示资料使得不受实际格式限制成为可能,而不管它们是否成为可能,而不管它们是否.RTF.RTF、HTMLHTML或或IPFIPF格式。既有格式。既有从从PrologProlog项格式到这些格式的生成器,也有分析程序把项格式到这些格式的生成器,也有分析程序把任何这些格式转换为任何这些格式转换为PrologProlog项格式。这些工具展现了许项格式。这些工具展现了许多应用程序的能力,如多应用程序的能力,如WordWord资料生成、资料生成、InternetInternet助理等助理等。这些工具可以在。这些工具可以在DOC_TOO
46、LDOC_TOOL子目录中找到,子目录中还子目录中找到,子目录中还包含一个示例程序,可以看到包含一个示例程序,可以看到HTMLHTML格式的文件在转换为格式的文件在转换为.RTF.RTF格式时详细情形。格式时详细情形。25. 25. PrologProlog解释器的源代码解释器的源代码 VPVP还包含还包含PrologProlog推理机推理机PIEPIE(Prolog Inference Prolog Inference EngineEngine):用):用VPVP编写的一个标准编写的一个标准PrologProlog解释器的全部源解释器的全部源代码。对于更多地学习代码。对于更多地学习Prolo
47、gProlog如何工作和如何把元语言如何工作和如何把元语言能力加进应用程序来说,这个解释程序是一个强大的工能力加进应用程序来说,这个解释程序是一个强大的工具。可以修改这个解释程序,创建自己专用的逻辑程序具。可以修改这个解释程序,创建自己专用的逻辑程序设计语言、推理机、专家系统外壳或程序接口等。设计语言、推理机、专家系统外壳或程序接口等。PrologProlog推理机推理机26.26.把把PrologProlog编译器嵌入到应用程序编译器嵌入到应用程序 在在VPITOOLEXAMPBUILDVPITOOLEXAMPBUILD中,有一个例子说明如何把中,有一个例子说明如何把PrologProlog
48、编译程序和连接程序集成到应用程序,以便编译编译程序和连接程序集成到应用程序,以便编译那些尚未工作的规则。通过在那些尚未工作的规则。通过在.DLL.DLL中实现规则,就可以中实现规则,就可以改变规则而不用关闭应用程序。改变规则而不用关闭应用程序。 这对于规划和调度而言是一个非常强大的特性。它要这对于规划和调度而言是一个非常强大的特性。它要求付给求付给PDCPDC一笔小的运行时间费用,签署一个协议,你将一笔小的运行时间费用,签署一个协议,你将不可以用它来创建一个与不可以用它来创建一个与VPVP产品竞争的应用程序。如果产品竞争的应用程序。如果你拥有你拥有VPVP的专业版本,就拥有所需要的全部特性;而
49、且的专业版本,就拥有所需要的全部特性;而且只要你的客户拥有只要你的客户拥有VPVP的许可权,就可以把应用程序交给的许可权,就可以把应用程序交给他们。否则,请与他们。否则,请与PDCPDC联系,以获取更多的信息。联系,以获取更多的信息。27.27.可视化开发环境的源代码可视化开发环境的源代码 对于对于VPVP的专业版本,在的专业版本,在VDESRCVDESRC子目录中可以找到可子目录中可以找到可视化开发环境的源代码。有了它,就可以任意定制所期视化开发环境的源代码。有了它,就可以任意定制所期望的望的VDEVDE,或者研究在程序中如何实现这些功能、适当的,或者研究在程序中如何实现这些功能、适当的工具
50、和技术。工具和技术。28.28.安装程序安装程序 用来安装用来安装VPVP的安装程序本身是用的安装程序本身是用VPVP写成的,其核心写成的,其核心源代码包含在光盘上。它能被修改而创建你自己应用程源代码包含在光盘上。它能被修改而创建你自己应用程序的安装程序。序的安装程序。Visual PrologVisual Prolog安装程序安装程序29.29.商业专家系统外壳商业专家系统外壳 VPVP包含一个商业专家系统外壳包含一个商业专家系统外壳ESTAESTA。与它一起还提供。与它一起还提供了全部源代码,以定制和包含在自己的应用程序之中。了全部源代码,以定制和包含在自己的应用程序之中。30.30.许多
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。