Visual Prolog
Download
1 / 102

VPintro - PowerPoint PPT Presentation


  • 214 Views
  • Uploaded on

Visual Prolog , 智能化应用开发的强大工具. 雷英杰. 空军工程大学导弹学院二系. Visual Prolog 语言专题网页 : http://www.kddxy.net/~lei/VIP.html Web Page ( 主页 ) : http://www.kddxy.net/~lei/ Email: [email protected] Phone: 89726 (O), 89244(O) Office time: by appointment. 主 要 内 容 一、概 述 二、 Visual Prolog 与 Prolog

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'VPintro' - medwin


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Slide1 l.jpg

Visual Prolog,智能化应用开发的强大工具

雷英杰

空军工程大学导弹学院二系

空军工程大学 雷英杰


Slide2 l.jpg

Visual Prolog语言专题网页:

http://www.kddxy.net/~lei/VIP.html

Web Page (主页):

http://www.kddxy.net/~lei/

Email: [email protected]

Phone: 89726 (O), 89244(O)

Office time: by appointment

空军工程大学 雷英杰


Slide3 l.jpg

主 要 内 容

一、概 述

二、Visual Prolog与Prolog

三、Prolog能作何用

四、Visual Prolog的特点

五、Prolog与其它语言有何差别?

六、关于Visual Prolog资料

七、系统需求

空军工程大学 雷英杰


Slide4 l.jpg

主 要 内 容

一、概 述

二、Visual Prolog与Prolog

三、Prolog能作何用

四、Visual Prolog的特点

五、Prolog与其它语言有何差别?

六、关于Visual Prolog资料

七、系统需求

空军工程大学 雷英杰


Slide5 l.jpg

一、 概 述

Prolog语言是人工智能与专家系统领域最著名的逻辑程序设计语言。Visual Prolog意指可视化逻辑程序设计语言,是基于Prolog语言的可视化集成开发环境,是Prolog开发中心(PDC)最新推出的基于Windows环境的智能化编程工具,其语言特性符合相应的国际标准ISO/IEC 13211-1:1995。是国际上研究和开发智能化应用的主流工具之一。预计不长时期内,Visual Prolog将会在我国流行开来,并将迅速成为我国研究和开发智能化应用的主流工具。

空军工程大学 雷英杰


Slide6 l.jpg

一、 概 述

Visual Prolog具有模式匹配、递归、回溯(backtrack)、对象机制、事实数据库和谓词库等强大功能。它包含构建大型应用程序所需要的一切特性:图形开发环境、编译器、连接器和调试器,支持模块化和面向对象程序设计,支持系统级编程、文件操作、字符串处理、位级运算、算术与逻辑运算,以及与其它编程语言的接口。

Visual Prolog包含一个大型库,捆绑了范围广阔的API函数:包括Windows GUI函数族、ODBC/OCI数据库函数族和Internet函数族(socket、ftp、http、cgi等)。开发环境全部使用Visual Prolog语言写成,而且包含对话框、菜单、工具栏等若干编码专家和图形编辑器。

空军工程大学 雷英杰


Slide7 l.jpg

一、 概 述

Visual Prolog非常适合于专家系统、规划和其它AI相关问题的求解,是智能程序设计语言中具有代表性且应用较多的一种程序设计语言。由于这种语言很适合表达人的思维和推理规则,在自然语言理解、机器定理证明、专家系统等方面得到了广泛的应用,在智能程序设计语言中占有相当重要的地位。Visual Prolog不仅是优秀的智能化应用开发工具,而且与SQL数据库系统、Visual C++或其它C++开发系统、Visual Basic、Delphi或Visual Age等编程语言一样,已经成为适用于任何应用领域的强有力的通用开发工具。

空军工程大学 雷英杰


Slide8 l.jpg

一、 概 述

智能化是当前计算机、自动化、通信、管理等信息科学技术领域中的新方法、新技术、新产品的重要发展方向与开发策略之一。信息处理的智能化与信息社会对智能的巨大需求是人工智能发展的强大动力。人工智能与专家系统曾取得过许多令人注目的成果,也走过不少弯路,经历过不少挫折。近几年来,随着计算机与网络通信技术的迅猛发展,特别是因特网的大规模普及,人工智能与专家系统的研究再度活跃起来,并正向更为广泛的领域发展。围绕人工智能与专家系统的研究和应用开发也迎来一个蓬勃发展的新时期。

空军工程大学 雷英杰


Slide9 l.jpg

主 要 内 容

一、概 述

二、Visual Prolog与Prolog

三、Prolog能作何用

四、Visual Prolog的特点

五、Prolog与其它语言有何差别?

六、关于Visual Prolog资料

七、系统需求

空军工程大学 雷英杰


Visual prolog prolog l.jpg
二、Visual Prolog与Prolog

Prolog是全世界计算机科学家多年来研究工作的结晶。Prolog的第一个正式版本由法国马赛大学Alain Colmerauer于70年代作为一种逻辑程序设计工具研制。其结果是诞生了一种远比当今Pascal和C这样著名的编程语言功能更加强大的语言。一个特定应用的Prolog程序典型情况下只需要对应C++程序的十分之一程序行。

今天,Prolog是人工智能应用编程和专家系统开发的一个非常重要的工具。更多的“用户友好性”和智能化程序的要求是使Prolog流行起来的另一个原因。

空军工程大学 雷英杰


Slide11 l.jpg

Prolog最重要的好处是非常公平地适用于任何应用领域:通过让程序员建立对象和进程之间的逻辑关系,复杂问题更容易从本质上求解,而且产生的程序在其生命周期更容易维护。定制知识库、专家系统、自然语言接口和智能信息管理系统这些应用都是当前使用Visual Prolog进行程序设计的领域范围。

Prolog已经走出了人工智能实验室,PDC的Visual Prolog是一个商业上富有竞争的通用开发环境。Visual Prolog因其容易增加程序甚至网站的智能化特性而日益变成许多开发者选择的工具。

空军工程大学 雷英杰


Slide12 l.jpg

Prolog是一种众所周知的说明性语言。这就是说,给出所需要的事实和规则,Prolog将使用演绎推理求解编程问题。这与传统的过程性编程语言如C、BASIC和Pascal等形成了鲜明的对照。在过程性语言中,程序员必须提供一步一步的指令,准确地告诉计算机如何求解给定的问题。换句话说,程序员必须预先知道如何求解这个问题。另一方面,Prolog程序员只需要提供对问题的描述和求解的基本规则。此后,Prolog系统将确定如何找到一个解。

Prolog鼓励程序员从结构良好的问题描述开始,因而实际上,Prolog也可以被用作指定产品的规格说明工具和实现工具。

空军工程大学 雷英杰


Slide13 l.jpg

Visual Prolog是PDC Prolog和Turbo Prolog的后继产品。在微机上,Visual Prolog是基于Windows环境的,而早期的PDC Prolog和Turbo Prolog是基于DOS环境的。Visual Prolog特别适合于处理知识和知识问题求解,是优秀的智能化应用开发工具。同时也已经成为适合于任何应用领域的通用开发工具。

PDC的Visual Prolog特别适用于这些传统类型的数据库任务,因为Visual Prolog具有的编程能力之一就是十分易于使用的数据库引擎。

空军工程大学 雷英杰


Slide14 l.jpg

Visual Prolog由于高度优化的编译器,创建的程序非常快,几乎与基于C++的应用程序一样快。

Web编程支持和对象机制这两种功能是对Visual Prolog商用有效性的巨大贡献。对象机制本身就是一种非常强大的建模工具,几乎已经成了Pascal、C++、Smalltalk等语言的一种事实上的标准。Web编程支持是一个重要的新特性。

譬如,用Visual Prolog写的专家系统,可以被连接到Web页,在支持部门、网上贸易和其它一些基于Web技术的开发等方面将发挥重要作用。

空军工程大学 雷英杰


Slide15 l.jpg

主 要 内 容

一、概 述

二、Visual Prolog与Prolog

三、Prolog能作何用

四、Visual Prolog的特点

五、Prolog与其它语言有何差别?

六、关于Visual Prolog资料

七、系统需求

空军工程大学 雷英杰


Slide16 l.jpg

三、Prolog能作何用?

3.1 人工智能应用

Prolog最初是作为一种人工智能(AI)语言设计的,它非常适合于专家系统和类似的AI应用。框架和基于规则的系统,前向链和后向链,模式匹配机制,约束求解机制,都是自然而精致的Prolog潜在语义的表达式。

PDC的用户已经在银行、航空、健康、保险、医疗、工业等广泛的领域建成咨询系统、决策支持、诊断、专家系统外壳或自然语言应用程序。

空军工程大学 雷英杰


Slide17 l.jpg

3.2 其它领域的应用

Prolog的能力已经延伸到AI之外。高级抽象,表示复杂数据结构的易用性和简明性,使得编程的说明性方法有益于任何学科或问题求解策略。

基于这个原因,Visual Prolog已经广泛用来建造行政事务、高级数据库管理、规划和调度系统、基于Web的应用等等。

空军工程大学 雷英杰


Slide18 l.jpg

主 要 内 容

一、概 述

二、Visual Prolog与Prolog

三、Prolog能作何用

四、Visual Prolog的特点

五、Prolog与其它语言有何差别?

六、关于Visual Prolog资料

七、系统需求

空军工程大学 雷英杰


Slide19 l.jpg

四、Visual Prolog的特点

1. 可视化开发环境

可视化开发环境(VDE)把编译器与编辑器、资源工具箱、资源和应用专家、交互式建造工具和各种浏览工具等结合在一起。

在交互式、可视化地创建用户接口部件之后,就自动生成了一个运行原型。应用程序专家为一个项目创建所需要的全部文件,资源专家知道如何生成Prolog代码,以支持所选择的全部资源。

设计VDE是为了使开发应用程序更加容易、方便和快捷,这些应用程序是基于每一个本地操作系统提供标准接口的高级抽象。

空军工程大学 雷英杰



Slide21 l.jpg

2.编码专家

编码专家创建并维护Prolog的控件资源代码。Visual Prolog最大的强项可能是把布局设计工具(Layout)和编码专家结合在一起。编码专家完成大部分工作,就是说,你可以在几分钟之内创建一个应用程序,然后从这个原型逐渐增强到最终的应用程序。

空军工程大学 雷英杰



Slide23 l.jpg

3.生成和配置项目的应用程序专家

应用程序专家能生成一个新项目。它说明操作系统、UI策略、C编译器、伴随工具等各种各样的组合。当生成一个新项目时,它将自动建立所有的基本工具,如帮助文件、工具栏、菜单等。

空军工程大学 雷英杰


Slide24 l.jpg

应用程序专家

空军工程大学 雷英杰


Slide25 l.jpg

4.资源集成编辑器

这些工具使得以交互方式可视化地设计和修改用户接口成为可能。使用鼠标安排控件在对话框或窗口中的布局,设置访问属性。资源由窗口、对话框、位图、图标、光标和串等组成,它们是任何使用GUI的应用程序都需要的.

空军工程大学 雷英杰


Slide26 l.jpg

5.引入资源的能力

资源可以从DLL、应用程序、RES文件及其它Visual Prolog项目引入。

空军工程大学 雷英杰


Slide27 l.jpg

6.语言敏感的文本编辑器

Visual Prolog包含现代开发环境中能找到的所有特性,例如功能强大的源代码编辑器,可以使Visual Prolog的关键字和其它语言元素的代码有不同的颜色。这些颜色能使谓词名、参数、注释等之间的差别更易于区分。编辑器支持不受限制的撤消与重做设施、搜索与替换、剪切、拷贝、粘贴、快速拖放移动块,甚至嵌入超文本链接。此外,与以前的PDC编辑器一样,程序员能够把这个编辑器功能包括在自己的应用程序中。

空军工程大学 雷英杰


Slide28 l.jpg

7.集成帮助生成器

内置的帮助创作系统使得很容易给出应用程序的联机帮助。这个帮助系统是基于PDC的超文本抽象机(HAM)的。在帮助创作系统中,有可能在设计阶段交互式地输入文本,用鼠标标记新的链接,跟随现有的链接。帮助系统能够输出Windows的.RTF格式,所以它可以生成本地的Windows帮助系统。

Help编译器(如HCW.EXE)不包括在Visual Prolog中,但可以在Visual C++和Borland C++产品中找到。如果需要一个更新版本的Windows帮助编译器,可以查看一下ftp://ftp.microsoft.com/Softlib目录。

空军工程大学 雷英杰


Slide29 l.jpg

Visual Prolog的帮助系统

空军工程大学 雷英杰


Slide30 l.jpg

8.源代码浏览器

Visual Prolog编译器为源代码浏览器产生信息,所以,检查模块中的谓词、浏览项目中所有全局谓词,或者查找任何谓词、论域声明或定义的位置,都是很方便的。

空军工程大学 雷英杰


Slide31 l.jpg

9.项目共享与源代码控制

对于VP可以使用源代码控制系统,如Visual SourceSafe、PVCS和MKS,它使得很容易在几个项目之间共享源代码,也允许多个程序员从事同一项目。

空军工程大学 雷英杰


Slide32 l.jpg

10. VP大型联机帮助参考信息

这个帮助设施提供一个完全的VDE操作指南和完整的基本Prolog语言及可视化编程扩展的参考信息。

空军工程大学 雷英杰



Slide34 l.jpg

11.可视化编程接口(VPI)

一种可移植的Visual Prolog图形用户接口(GUI)API已经定义。这个API是一种抽象的设施,可以在基本的Windows 95/98/Me/XP及Windows NT/2000平台中找到。可视化编程接口给Visual Prolog程序员一个比本地编程更可移植和更容易使用的GUI API。然而,为了使用户不受限制,VPI也包含不可移植的平台专用设施和选件。

空军工程大学 雷英杰


Slide35 l.jpg

12.高级GUI部件

这些工具包括删格、树型窗口、Explorer视图、工具栏、制表对话框、高级报表处理等。

空军工程大学 雷英杰


Slide36 l.jpg

13.快速而高度优化的编译器

VP的编译器产生紧凑的本地代码,足以与Pascal和C编译器所生成的代码媲美。编译器执行几种不同的分析,范围从全局流程分析和确定性机制检查,向下到寄存器分配和偷窥优化。

除了产生有效代码,编译器执行许多高级检查,检测潜在的编译时间问题。主要是类型检验分析、全局流程分析,确定性机制检查和可能的失败检测。

空军工程大学 雷英杰


Slide37 l.jpg

编译器选件对话框

空军工程大学 雷英杰


Slide38 l.jpg

14.检测编译时间错误的类型检查机制

VP杰出的特性之一是其类型机制,它提供一个额外级别的编程安全性。类型声明是资料性代码,有助于编译器在开发的早期阶段指出创建的类型错误和更严重的逻辑错误。因此,通过比照程序员和开发系统之间的类型,使得类型声明有助于保证一个程序在整个产品生命周期的完整性。更进一步,这些声明帮助编译器生成的程序更有效,在执行期间更节省存储空间。

空军工程大学 雷英杰


Slide39 l.jpg

15.调试器

当程序较大时,我们就会发现VP的调试器是一个不可缺少的工具。调试器对编译出来的代码进行工作,允许设置断点和单步执行代码。当单步执行代码时,可以检查变量的值及尚待证实的事实的内容。

空军工程大学 雷英杰


Slide40 l.jpg

调 试 器

空军工程大学 雷英杰


Slide41 l.jpg

16.异常处理和错误陷阱

VP包括功能强大的处理错误情况和控制用户中断的机制。程序员可以在错误检查和错误报告的不同级别(0,1,2,3)上进行选择。

空军工程大学 雷英杰


Slide42 l.jpg

17.类和对象

人们常常在面向对象和说明性编程语言之间进行辩识,但在VP中,可以同时使用取自这两种范例的特性。VP语言支持对象和类,在设计中与C++实现类似。

空军工程大学 雷英杰


Slide43 l.jpg

18.可移植性编码

VP系统可用于多种平台,并能为多种平台生成程序。除了个别操作系统专用设施和限制之外,Prolog代码在所有平台之间是可移植的。

空军工程大学 雷英杰


Slide44 l.jpg

19.开放式平台

VP很好地设计了与其它编程工具的接口。VP能生成其它语言可调用的例程,它本身也能够调用其它语言编写的例程。接口是通用的,而且支持所有产生标准.OBJ模块的编译器。此外,VP程序还能够调用DLL,并被放在DLL内部。

通过声明全局VP谓词为C语言(或stdcall)调用约定,通过声明参数类型和输入/输出流程模式,在VP和C之间不用特殊的胶合代码而直接调用C例程(就象它们是Prolog代码一样)是完全可能的。这种接口在两个方向上起作用,当谓词象C语言那样声明时,它们能够被C语言例程直接调用。

空军工程大学 雷英杰


Slide45 l.jpg

  • GLOBAL PREDICATES

    • procedure LONG vpi_LoadDll( STRING ) - (i) language c

    • procedure vpi_FreeDll( LONG ) - (i) language c

    • procedure LONG vpi_GetDllProc( LONG,

      • STRING ProcName ) - (i, i) language c

空军工程大学 雷英杰


Slide46 l.jpg

20.集成Make工具

Make工具处理编译、连接、资源编辑和资源绑定等所有的复杂性。Make工具检查时间邮戳,只编译所需要的文件。为了显示项目的结构,可以把这种依赖关系显示成一个树。

空军工程大学 雷英杰


Slide47 l.jpg

Make工具

空军工程大学 雷英杰


Slide48 l.jpg

21.功能强大的数据库子系统

快速而非常灵活的数据库子系统使Visual Prolog成为一个比许多4GL数据库应用更适当的选择。这个数据库系统支持一个独特的VP项的有序链的集合,而数据库的项可以是语言本身支持的任何抽象或数据结构,从简单的记录到树或图。数据库系统能直接访问单个项,或经由项的链进行回溯,以产生或匹配特定值。

数据库还支持B+树,以提供快速数据检索和有效改变项排序的能力。

空军工程大学 雷英杰


Slide49 l.jpg

如果正在LAN应用程序中使用数据库,就可以利用VP支持外部数据库系统的文件共享这个优点。通过使用一个机制,在交易内部有效地使文件访问串行化,从而提供多用户数据库访问。也就是说,一个数据库可以被几个用户或几个进程同时打开。

空军工程大学 雷英杰


Slide50 l.jpg

VP支持的不同类型的数据库

空军工程大学 雷英杰


Slide51 l.jpg

22.客户/服务器体系结构

VP是一个建造客户/服务器应用程序的功能强大的平台。其主要途径当前是TCP/IP绑定,也有可能是Windows下的NETDDE。使用其中任何一种设施,程序员可以在单个机器的多个进程之间,或在网络中分开的各机器程序之间,发送任意复杂的Prolog项。数据库和逻辑服务器可以用这种设施容易地进行建造。

空军工程大学 雷英杰


Slide52 l.jpg

23. ODBC和可移植SQL绑定

VP的外部数据库常常是存储大量数据最快和最灵活的途径。然而,数据可能在另一个数据库系统中已经存在,或者这个应用程序需要与其它仅仅使用特定数据库技术的应用程序共享数据。在这种情况下,能够连接到外部数据库变得非常重要,而Visual Prolog与可移植SQL的绑定将使这种情况对于大多数数据库来说得到简化。可移植SQL绑定是基于ODBC、Oracle的OCI库、或DB2的。对Windows平台而言,VP还包含更广泛的对Microsoft的ODBC API的直接绑定。

空军工程大学 雷英杰


Slide53 l.jpg

24.资料处理工具

PDC的DOC工具为处理丰富的格式化资料提供一个高级抽象。用Prolog结构来表示资料使得不受实际格式限制成为可能,而不管它们是否.RTF、HTML或IPF格式。既有从Prolog项格式到这些格式的生成器,也有分析程序把任何这些格式转换为Prolog项格式。这些工具展现了许多应用程序的能力,如Word资料生成、Internet助理等。这些工具可以在DOC_TOOL子目录中找到,子目录中还包含一个示例程序,可以看到HTML格式的文件在转换为.RTF格式时详细情形。

空军工程大学 雷英杰


Slide54 l.jpg

25. Prolog解释器的源代码

VP还包含Prolog推理机PIE(Prolog Inference Engine):用VP编写的一个标准Prolog解释器的全部源代码。对于更多地学习Prolog如何工作和如何把元语言能力加进应用程序来说,这个解释程序是一个强大的工具。可以修改这个解释程序,创建自己专用的逻辑程序设计语言、推理机、专家系统外壳或程序接口等。

空军工程大学 雷英杰


Slide55 l.jpg

Prolog推理机

空军工程大学 雷英杰


Slide56 l.jpg

26.把Prolog编译器嵌入到应用程序

在VPI\TOOLEXAMP\BUILD中,有一个例子说明如何把Prolog编译程序和连接程序集成到应用程序,以便编译那些尚未工作的规则。通过在.DLL中实现规则,就可以改变规则而不用关闭应用程序。

这对于规划和调度而言是一个非常强大的特性。它要求付给PDC一笔小的运行时间费用,签署一个协议,你将不可以用它来创建一个与VP产品竞争的应用程序。如果你拥有VP的专业版本,就拥有所需要的全部特性;而且只要你的客户拥有VP的许可权,就可以把应用程序交给他们。否则,请与PDC联系,以获取更多的信息。

空军工程大学 雷英杰


Slide57 l.jpg

27.可视化开发环境的源代码

对于VP的专业版本,在VDESRC子目录中可以找到可视化开发环境的源代码。有了它,就可以任意定制所期望的VDE,或者研究在程序中如何实现这些功能、适当的工具和技术。

空军工程大学 雷英杰


Slide58 l.jpg

28.安装程序

用来安装VP的安装程序本身是用VP写成的,其核心源代码包含在光盘上。它能被修改而创建你自己应用程序的安装程序。

空军工程大学 雷英杰


Slide59 l.jpg

Visual Prolog安装程序

空军工程大学 雷英杰


Slide60 l.jpg

29.商业专家系统外壳

VP包含一个商业专家系统外壳ESTA。与它一起还提供了全部源代码,以定制和包含在自己的应用程序之中。

空军工程大学 雷英杰


Slide61 l.jpg

30.许多精致例子

在许多例子中,有一个标签专家,是创建和打印标签的一个小应用程序。你将发现它是一个真正展示所包含的VPI工具能力的精致的小例子。

此外,随VP一起,还提供了许多展示Prolog问题求解的典型例子。

空军工程大学 雷英杰


Slide62 l.jpg

31.广泛的Internet编程支持

VP包含许多特性,可以容易地创建由Internet激活的应用程序。

空军工程大学 雷英杰


Slide63 l.jpg

32.绑定到套接字

包括绑定基本的低级接口和使套接字(Socket)接口用起来更安全、更容易的高级接口。套接字是对TCP/IP协议的API,可以用来在Internet的程序之间、在一个网络内部或同一台计算机上的两个程序之间建立一种通信。

空军工程大学 雷英杰


Slide64 l.jpg

33. FTP支持

VP包含一组API和示例程序,显示如何使用Internet的文件传输协议FTP(File Transfer Protocol)从Internet服务器发送和接收文件。

空军工程大学 雷英杰


Slide65 l.jpg

34. HTTP支持

VP包含一组API和示例程序,演示使用Internet超文本传输协议HTTP(HyperText Transfer Protocol)。这是环球网WWW(World Wide Web)所用的基本协议。这组API可以用来在Visual Prolog中创建WWW客户与服务器实用程序和Internet代理(Agent)。

空军工程大学 雷英杰


Slide66 l.jpg

35. CGI支持和例子

VP包含一些CGI例子,显示如何创建和生成动态Web页的VP程序。

空军工程大学 雷英杰


Slide67 l.jpg

36. ISAPI支持和例子

VP支持Microsoft的ISAPI,允许在Microsoft信息服务器或任何其它支持ISAPI接口的HTTP服务器上有高性能脚本。

空军工程大学 雷英杰


Slide68 l.jpg

37.与JAVA小程序通信

VP还包括一些例子,显示如何使Prolog服务器与JAVA小程序(Applet)进行通信。

空军工程大学 雷英杰


Slide69 l.jpg

主 要 内 容

一、概 述

二、Visual Prolog与Prolog

三、Prolog能作何用

四、Visual Prolog的特点

五、Prolog与其它语言有何差别?

六、关于Visual Prolog资料

七、系统需求

空军工程大学 雷英杰


Slide70 l.jpg

五、Prolog与其它语言有何差别?

5.1 Prolog是描述性的

一个Prolog程序由问题描述组成,而不是通过一系列步骤指定计算机必须如何工作来求解问题。从概念上讲,这个描述由两个部分组成:

1) 描述问题涉及的对象

2) 描述这些对象之间关系的事实和规则

Prolog程序中的规则规定了给定的输入数据和由输入产生的输出之间的关系。

空军工程大学 雷英杰


Slide71 l.jpg

5.2 Prolog使用事实和规则

一个Prolog程序实质上由一系列逻辑语句组成,这些语句或者是以事实的形式,或者是以规则的形式。

空军工程大学 雷英杰


Slide72 l.jpg

5.3 Prolog能做推演

给出Prolog程序一个目标,如

Goal father("John", "Mary").

Prolog将因为这个目标与存储的事实匹配而回答:

Yes.

如果在目标中使用变量,Prolog将求出这个变量的值:

Goal father(X, "Mary").

Prolog将因为查找到事实而回答

X="John"

空军工程大学 雷英杰


Slide73 l.jpg

5.4 Prolog求解过程是自动控制的

当一个VP程序用可视化开发环境的Test Goal实用程序运行时,系统试图找到满足给定目标的所有可能的解。在执行期间,显示结果。

VP使用回溯机制,每次找到一个解,使Prolog再次评估那些假设,查看某些新值是否能提供新的解。而这种寻找所有解的过程是自动控制的。

空军工程大学 雷英杰


Slide74 l.jpg

5.5 Prolog具有简洁的语法

学习VP的语法比传统编程语言的复杂语法要容易的多。

空军工程大学 雷英杰


Slide75 l.jpg

5.6 Prolog是更高级的语言

Prolog是一种比 C 或 Pascal 更高级的语言。如前所述,Prolog典型情况下求解问题时只使用C或Pascal程序的十分之一程序行。这完全归功于Prolog具有内置的模式匹配设施,以及简单和有效的处理递归结构的方法。

空军工程大学 雷英杰


Slide76 l.jpg

这些就是Prolog独有特色的简短概括。随着深入钻研和开始编写程序,你将会发现Prolog具有更多更强大的功能。

空军工程大学 雷英杰


Slide77 l.jpg

主 要 内 容

一、概 述

二、Visual Prolog与Prolog

三、Prolog能作何用

四、Visual Prolog的特点

五、Prolog与其它语言有何差别?

六、关于Visual Prolog资料

七、系统需求

空军工程大学 雷英杰


Slide78 l.jpg

六、关于Visual Prolog资料

  • VP的(中文)资料有:

    • 《 Visual Prolog语言教程》(陕西科技出版社)

    • 《Visual Prolog编程、环境及接口》

    • (国防工业出版社)

    • 联机帮助文件(英文)

    • HTML格式的资料(英文)

空军工程大学 雷英杰


Slide79 l.jpg

6.1 语言教程

语言教程着重从语言的角度,全面而系统地介绍VP语言及其编程。

全书共分四个部分:

第一部分介绍VP可视化开发环境的一个子集,举例解释如何创建、运行、调试及保存程序。

第二部分(第2—11章)介绍如何学会用VP编程,包括基本原理、程序结构、合一与回溯、简单对象与复合对象、重复与递归、表与递归、事实数据库、算术与比较运算、引用变量、谓词指针、二进制论域、项的转换、动态截断、错误和信号处理、程序设计风格、对象机制与面向对象程序设计。

空军工程大学 雷英杰


Slide80 l.jpg

6.1 语言教程

  • 第三部分(第12—16章)叙述VP的预定义特性,包括文件操作、串处理、外部数据库、系统级编程及程序举例。

  • 第四部分(第17—18章)详细叙述VP语言元素和模块化程序设计,以及与其它编程语言的接口。

  • 两个附录:

    • 谓词索引(按功能分类)

    • 谓词索引(按字母顺序)

空军工程大学 雷英杰


Slide81 l.jpg

6.2 Visual Prolog编程、环境及接口

  • 系统介绍Visual Prolog(VP)语言的功能特点、编程方法、开发环境及编程接口。

  • 全书分为三篇:

    • 编程指南 篇

    • 开发环境 篇

    • 编程接口 篇

空军工程大学 雷英杰


Slide82 l.jpg

6.2.1 编程指南

详细介绍VP语言的功能特点及编程方法,包括第1章至第9章。

第1章 Visual Prolog概述  介绍Prolog能做何用,VP的功能特点,与其它编程语言的差别等。

第2章 系统安装  介绍VP的安装过程和来自Prolog开发中心的技术支持。

第3章 编程起步  本章是熟悉整个系统大体功能的一个快速和轻松的导读。首先介绍VP的目标和规则等基本概念;然后从应用程序专家开始,介绍如何运行VP程序,如何使用代码浏览器、资源标识符浏览器、项目浏览器来学习所生成的代码。最后介绍系统最常使用的重要热键。

空军工程大学 雷英杰


Slide83 l.jpg

6.2.1 编程指南

第4章 扩展“Hello World”程序  一步一步介绍如何使用VP的菜单编辑器和代码专家——对话框与窗口专家——来扩充“Hello World”应用程序,学会VP编程的基本技巧。

第5章 创建窗口 介绍如何创建一个新的源程序模块、创建一个新的窗口,如何为窗口生成缺省代码、检查来到窗口的事件,以及更多的画图操作。

第6章 给窗口添加控件 介绍如何使用工具栏专家、图形编辑器和菜单编辑器等工具给窗口添加、编辑和使用位图、工具栏、菜单等资源,如何画鼠标掠影、改变鼠标光标、设置鼠标热点,如何创建弹出式菜单及改变画图颜色等。

空军工程大学 雷英杰


Slide84 l.jpg

6.2.1 编程指南

第7章 使用系统资源 介绍如何使用对话框包装专家来创建和使用时钟窗口(定时器)、图片窗口、树形窗口、编辑器窗口,如何处理剪贴板、控制打印机、给窗口添加更多的控件、使用列表框、创建对话框,以及使用DDE。

第8章 创建帮助文件 介绍如何为应用程序创建添加编辑器功能和联机帮助等。

第9章 调试Prolog程序 介绍VP的调试器。

空军工程大学 雷英杰


Slide85 l.jpg

6.2.2 开发环境

系统介绍VP的可视化开发环境(VDE),包括第10章至第17章。

第10章 使用VDE介绍VDE中使用的项目文件、项目窗口、信息窗口和项目模块树,以及代码浏览器、资源标识符浏览器等实用程序。还讨论了环境选项设置和全局初始化文件。

第11章 应用程序专家  介绍如何创建VP应用程序,包括项目命名、项目基目录、多程序员支持、目标选项和VPI选项,以及项目中生成的文件和目录结构的描述。

第12章 建立、编译和连接  详细介绍VP的编译器选项和代码生成器选项,以及具有符号、规则和脚本功能的Make工具,还介绍了建立项目的有关菜单命令。

空军工程大学 雷英杰


Slide86 l.jpg

6.2.2 开发环境

第13章 资源编辑  详细介绍资源命名、资源连接和资源引入,以及窗口与对话框编辑器、资源串编辑器、工具栏编辑器、菜单编辑器、图形编辑器和画图编辑工具。

第14章 编码专家  介绍如何利用代码生成专家来生成和编辑VP程序源代码,包括对话框与窗口专家、对话框包装专家及工具栏专家。

第15章 文本编辑器 介绍具有VP特色的通用文本编辑器。

空军工程大学 雷英杰


Slide87 l.jpg

6.2.2 开发环境

第16章 帮助生成器  介绍如何使用这个非常方便的实用工具来生成Windows帮助文件。

第17章 调试器  介绍VP调试器及调试VP应用程序所需要的有关信息。

空军工程大学 雷英杰


Slide88 l.jpg

6.2.3 编程接口

系统介绍Visual Prolog的可视化编程接口(VPI),VPI是一种高级应用程序接口(API),其设计是为了利用现代操作系统和显示硬件的图形能力,为Prolog应用程序提供完善的用户接口。

这个VPI基本上是不受平台约束的。然而,并非每一个GUI的全部设施都出现在这个VPI中,也并非这个VPI中的每一个设施全部都是可移植的;这个VPI试图以一种统一的方法支持每一种平台上都能找到的所有特性。

空军工程大学 雷英杰


Slide89 l.jpg

6.2.3 编程接口

VPI中的论域、常量和谓词不随目标平台改变。为了帮助那些对可移植性不感兴趣但需要具有最大灵活性的开发者,VPI也包含若干不可移植但却与给定平台密切相关的谓词。正如使用其它通用编程语言一样,编写一个可移植的VPI应用程序是可能的,但也可能编写出一个应用程序是不可移植的。本篇内容包括第18章至第24章。

第18章 调用VPI简要介绍VP的编程接口和事件驱动的应用程序等概念,描述了VP应用程序调用VPI谓词的基本过程。

空军工程大学 雷英杰


Slide90 l.jpg

6.2.3 编程接口

第19章 窗口与事件谓词  详细介绍窗口风格与窗口类型,窗口的创建、撤消、移动,改变窗口大小、状态,以及与窗口相关的处理谓词。还介绍与窗口有关的事件及事件处理,包括窗口的创建与撤消事件、用户请求关闭窗口事件、关闭GUI事件、窗口菜单事件、窗口鼠标事件和窗口键盘事件等,最后介绍了本地GUI事件、动态数据交换、控件通知事件、应用程序事件等的处理谓词。

第20章 控件操作谓词  介绍控件的操纵、控件的样式、来自控件的事件,以及各种标准控件、属主绘图控件和自定义控件等的操作谓词。

空军工程大学 雷英杰


Slide91 l.jpg

6.2.3 编程接口

第21章 资源操作谓词  介绍如何在VPI应用程序中获取或检查由VDE资源编辑器创建的各种资源,首先介绍资源类型,然后详细介绍对话框、菜单、光标、图片、图元文件、剪贴板及插字符等GUI资源操作谓词。

图片,介绍处理图片的谓词,包括图片格式转换,图片的创建、撤消、绘制、装入、保存、旋转。

剪贴板,介绍如何从剪贴板得到数据,如何将数据放入剪贴板,以及测试剪贴板数据的谓词。图元文件,介绍图元文件的装入、播放、撤消、记录谓词。

空军工程大学 雷英杰


Slide92 l.jpg

6.2.3 编程接口

第22章 绘图操作  详细介绍了绘图工具及其获得和设置方法。绘图谓词,包括画像素点、填充区域、绘制图标、绘制打开的图形、画填充图形,以及绘制文本、处理字体有关的操作谓词。

颜色处理,介绍了用基本的红、绿、兰三元色产生各种颜色的方法以及选择颜色的谓词。

坐标系,介绍对话框的基本度量单元以及如何将一个窗口系统的坐标映射到其它窗口,还介绍了窗口的映射模式。

打印,介绍了VPI应用程序中支持打印工作的谓词,包括开始打印、结束打印、设置页的打印方向、开始打印一新页、中止打印与获取打印设置。

空军工程大学 雷英杰


Slide93 l.jpg

6.2.3 编程接口

第23章 系统级操作  主要介绍系统资源或与系统内部处理有关的操作谓词。

定时器,介绍启动、停止定时器的方法及谓词。

动态数据交换,介绍客户机/服务器的角色、DDE客户操作、DDE服务器操作谓词,以及网络DDE等有关的谓词。错误处理,介绍VPI中的错误处理器以及如何安装新的错误处理器。本机API函数,介绍调用本机GUI函数的谓词,在VPI之外创建窗口的方法,VPI窗口的本机事件,获得本机窗口句柄和设备上下文的谓词。运行外部应用程序,详细介绍从VPI程序中调用外部程序的谓词。执行联机帮助,介绍VPI中激活联机帮助的谓词。

空军工程大学 雷英杰


Slide94 l.jpg

6.2.3 编程接口

第24章 VPI程序包  介绍各种支持程序包。对话框程序包,全部由Prolog源程序编写而成,包括对话框的创建和初始化,对话框的事件处理、对话框论域,获取、设置对话框中控件的值,控件状态的修改等。编辑器API,介绍编辑窗口的创建谓词、从编辑窗口获取文本谓词、增加新文本谓词以及与编辑器有关的其他各种谓词。消息窗口程序包,提供一个处理简短消息对话框的工具。工具栏程序包,介绍工具栏的创建、大小调整及移动等谓词,还介绍了在工具栏中创建单选按扭的方法。目录树程序包,介绍目录树工具包中的谓词和论域。属主绘图程序包,介绍会使属主绘图更为容易一些的例子文件。

空军工程大学 雷英杰


Slide95 l.jpg

6.3 VP联机帮助文件

Visual Prolog语言元素、可视化编程接口、可视化开发环境,以及所提供的其它工具和各种工具包等参考资料包含在Visual Prolog联机帮助文件之中(VIP.HLP文件)。从可视化开发环境,联机帮助文件可以用Help菜单命令和热键F1(活动工具的概括信息)和Ctrl+F1(谓词名、论域等内容敏感帮助)进行访问。

空军工程大学 雷英杰


Slide96 l.jpg

6.4 HTML格式的资料

VP资料的一个重要部分是随VP一起提供的HTML格式文件(在HTML和其它子目录)。VP概述(INTRO.HTM)在Visual Prolog CD上,并在安装时被拷贝到Visual Prolog的根目录。从INTRO.HTM文件开始(可以从VDE的Help | Introduction to VP打开它),将会发现连接到所提供的其它HTML格式资料和PDC Web上的大量信息。

随VP一起,包含许多典型例子,可以直接检查和编译。这可能是学习Prolog编程和熟悉VP开发环境的最好方法之一。为了找到有关VP的Web信息,可以使用VDE中Help | Visual Prolog on WEB下的子菜单。

空军工程大学 雷英杰


Slide97 l.jpg

主 要 内 容

一、概 述

二、Visual Prolog与Prolog

三、Prolog能作何用

四、Visual Prolog的特点

五、Prolog与其它语言有何差别?

六、关于Visual Prolog资料

七、系统需求

空军工程大学 雷英杰


Slide98 l.jpg

七、系统需求

  • 为了运行Visual Prolog可视化开发环境,必需:

    • Microsoft Windows 95/98/Me/NT/2000/XP

    • Pentium以上配置的PC机

    • 至少8 MB RAM, 推荐32MB RAM以上

    • 硬盘至少15 MB自由空间, 专业版本完全安装大约需要200 MB

空军工程大学 雷英杰


Slide99 l.jpg

附言:后续工作

  • 《Visual Prolog面向对象程序设计》

  • 《Visual Prolog面向对象开发环境》

  • 《Visual Prolog基类库参考手册》

空军工程大学 雷英杰


Slide100 l.jpg

附言:其他影响

  • 清华大学、中国科技大学、重庆大学、南开大学、 太原工学院

  • 西安交通大学、西安电子科技大学、西北大学、 西北农林科技大学

  • 天津师范大学、湖南师范大学、江西师范大学

  • 深圳一些软件公司,等等(空军工程大学)

空军工程大学 雷英杰


Slide101 l.jpg

Visual Prolog语言专题网页:

http://www.kddxy.net/~lei/VIP.html

Web Page (主页):

http://www.kddxy.net/~lei/

Email: [email protected]

Phone: 89726 (O), 89244(O)

Office time: by appointment

空军工程大学 雷英杰


Slide102 l.jpg

报告完毕

谢谢大家

AFEU

空军工程大学 雷英杰


ad