prolog教程第4章

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

2004.11.3AI程序设计1第二部分:第4章VisualProlog概述第4章VisualProlog概述•在这一章,将首先给出VisualProlog6基本特性的一个简要介绍。然后通过实例,较为详细地介绍VisualProlog6的可视化开发环境VDE,包括创建项目、建立项目、浏览项目、开发项目、调试项目等。2004.11.3AI程序设计2第二部分:第4章VisualProlog概述第4章VisualProlog概述4.1VisualProlog6概述4.2VisualProlog6基本特性4.3创建项目4.4建立项目4.5浏览项目4.6开发项目4.7调试项目本章小结习题四2004.11.3AI程序设计3第二部分:第4章VisualProlog概述4.1VisualProlog6概述•VisualProlog6是最新一代的VisualProlog逻辑程序设计语言,是VisualProlog的PDC和TurboProlog的后继产品。VisualProlog6的目标是支持企业级的强调问题求解的复杂知识的程序设计。VisualProlog6的发布是PDC历时3年开发的结果。2004.11.3AI程序设计4第二部分:第4章VisualProlog概述4.1VisualProlog6概述•经过持续不断的努力和对用户需求的深入考察,VisualProlog已经增加了如下功能:–一个独特的对象系统–多线程机制–Unicode支持–改进的DLL支持–改进的函数支持–改进的异常处理–其他更多功能等2004.11.3AI程序设计5第二部分:第4章VisualProlog概述4.1VisualProlog6概述•今天,VisualProlog6是一个功能非常强大的、非常安全的程序设计语言,它以一致和一流的方式将许多编程范例结合在一起。VisualProlog是一个完备的程序设计环境,它提供如下设施:–图形开发环境–编译器–连接器–调试器2004.11.3AI程序设计6第二部分:第4章VisualProlog概述4.1VisualProlog6概述•开发环境已经得到极大的改善,从而使编写程序更加简单,对高级任务可提供更好的帮助。它支持先进的客户/服务器和多级解决方案。使用VisualProlog,我们就能在MicrosoftWindows平台建立企业级的应用程序。VisualProlog特别适应于处理复杂的知识问题。PDC已经通过实例证明了这一点,它提供的一些成功的应用系统案例有:–职员计划–医院预约登记–机场决策支持–航班决策支持–商店室内调度2004.11.3AI程序设计7第二部分:第4章VisualProlog概述4.1VisualProlog6概述•上述所有这些系统全部是用VisualProlog写成的。•通过使用功能强大的对象系统,我们能够非常迅速地构筑一个应用,同时受益于非常宽松的耦合环境。这将使我们能够缩短开发周期,减少维护费用。•PDC提供免费的非商业的个人版本,从而为学习使用这个卓越的系统提供了良机。2004.11.3AI程序设计8第二部分:第4章VisualProlog概述4.2VisualProlog6基本特性•VisualProlog6是最新一代的VisualProlog逻辑程序设计语言,它可以创建Win32平台的企业级应用程序。•VisualProlog6是基于Prolog的强类型的面向对象程序设计语言。下面从语言特性、图形化开发环境、编译器、链接器、调试器等方面简要予以介绍。2004.11.3AI程序设计9第二部分:第4章VisualProlog概述4.2VisualProlog6基本特性4.2.1语言特性VisualProlog6语言的主要特性:•基于Horn子句的逻辑程序设计语言•完全面向对象•对象谓词值(委派)•强类型•代数数据类型•模式匹配与合一•受控的不确定性机制•完全集成的事实数据库•自动的内存管理•支持与C/C++的直接联接•支持对Win32API函数的直接访问2004.11.3AI程序设计10第二部分:第4章VisualProlog概述4.2VisualProlog6基本特性•对象机制实现了系统和用户之间的松散耦合。对象只能通过接口来访问,接口与实现之间不过是松散耦合。类可以通过继承(或不继承)其它类来实现接口。•强大的类型检测、无需指针算法和自动内存管理的结合真正地避免了非法访问。•无非法访问一直是VisualProlog的一个优势。正如PDC的一位用户所说:“对于VisualProlog,那种错误不存在。”VisualProlog6毫无例外地继续保持这个优势。PDC的目标是:避免在必须调用外部代码或建立指针算法时引起的非法访问。2004.11.3AI程序设计11第二部分:第4章VisualProlog概述4.2VisualProlog6基本特性•用非决定性搜索将符号数据类型、事实数据库和模式匹配结合起来,这样使得VisualProlog非常适合于处理复杂的结构化知识。•除了谓词值和对象,所有的VisualProlog数据都有一个人性化的可读文本表示,它可以被写入并返回到程序。2004.11.3AI程序设计12第二部分:第4章VisualProlog概述4.2VisualProlog6基本特性4.2.2图形化开发环境VisualProlog集成开发环境可以更方便快捷地建立、测试和修改VisualProlog应用程序。它在开发大型项目时非常有用。–项目窗口中的模块、包括文件和资源的树型结构,有助于将项目打包,从而给出了一个额外级别的抽象。–文本编辑器可以方便地进行文本编辑,浏览那些声明和实现。–对话框编辑器为设计对话框提供了标准控件。–菜单编辑器允许创建下拉式菜单和弹出式菜单。–工具栏编辑器允许创建各种工具栏。–图形编辑器可以方便地创建、查看和编辑图标、指针和小位图。–建造工具支持插入所需的程序包和包含指令。–浏览工具支持查找特定的实体,“gotodefinition”和“gotodeclaration”。2004.11.3AI程序设计13第二部分:第4章VisualProlog概述4.2VisualProlog6基本特性4.2.3编译器VisualProlog编译器是二十世纪八十年代的TurboProlog编译器的后继产品,TurboProlog是第一个Prolog编译器。自那时开始,PDC就一直开发并改进这个编译器,所以现在的VisualProlog编译器是一个功能强大且高效的编译器,它可以用来:–为产生可单独执行的程序或DLL而创建目标文件–解决声明间的交叉引用–验证谓词模式–执行强类型检查–在构造器中验证事实初始化–进行谓词分解2004.11.3AI程序设计14第二部分:第4章VisualProlog概述4.2VisualProlog6基本特性4.2.4链接器VisualProlog拥有一个功能强大的链接器:–产生EXE可执行文件和DLL文件–使用由最新的MicrosoftVisualC编译器产生的LIB文件2004.11.3AI程序设计15第二部分:第4章VisualProlog概述4.2VisualProlog6基本特性4.2.5调试器VisualProlog集成开发环境包含一个内建图形化调试器:–显示常见的调试器视图:内存,堆栈,变量–显示类和对象事实的值–进行单步跟进(TraceInto),单步越进(StepOver),等等–包括额外的调试步骤:单步跳出,运行到Prolog代码–Fail和Exit可视化等2004.11.3AI程序设计16第二部分:第4章VisualProlog概述4.3创建项目从这一节开始,我们将给出一个可视化开发环境VDE的综述。这个VDE是用来创建、开发和维护VisualProlog项目的。简言之,在一个项目文件中,我们将使用这个VDE来完成如下任务:•创建(Creation)项目:即用VDE来创建一个项目。在项目创建期间,可以选择该项目的一些重要特性,如该项目是产生一个可执行文件还是产生一个DLL,是使用GUI还是只使用文本方式等。•建立(Building)项目:即建立一个项目,在VDE中进行编译和连接等。•浏览(Browsing)项目:VDE和编译器收集关于该项目的信息,这些信息以各种方式被用来进行实体的快速定位等。2004.11.3AI程序设计17第二部分:第4章VisualProlog概述4.3创建项目•开发(Development)项目:在项目的开发和维护期间,VDE被用来给项目添加源文件和GUI实体、删除源文件和GUI实体,以及编辑源文件和GUI实体。•调试(Debugging)项目:VDE还被用来调试项目。在程序运行期间,调试器可用来跟踪程序的执行,探索程序的状态。本章最后,我们将较为详细地回顾一下上述这些事件。值得注意的是:我们将首先创建一个项目,并将这个项目贯穿于全章。2004.11.3AI程序设计18第二部分:第4章VisualProlog概述4.3创建项目首先,我们创建一个项目。在菜单中选择Project-New...,VDE将对此做出响应,出现一个包含项目各种特性的对话框,如图4.1所示。图4.1项目设置选项对话框2004.11.3AI程序设计19第二部分:第4章VisualProlog概述4.3创建项目•我们选择项目名为tut01。项目名亦作为将要产生的目标文件名。在此例中,目标文件是一个exe文件,故目标文件名将是tut01.exe。选择UI策略为GUI,即该程序是一个GUI程序,带有图形用户界面。•基本目录(BaseDirectory)是一切项目的“基地”。为此,我们可以选择一个方便的目录位置。新项目将在基本目录的一个子目录中进行创建,按照缺省,这个子目录名与项目名同名。2004.11.3AI程序设计20第二部分:第4章VisualProlog概述4.3创建项目•在系统中创建项目时,常使用包前缀(PackagePrefix)。关于包的概念,后面的章节还将详细解释。在此例中,源程序文件将与其他人共享前缀,如果这个前缀不与其他前缀相冲突,这是一个好的做法。此时,暂不需要考虑其余的选项。•现在,按下创建(Create)按钮,创建该项目。VDE将显示出如图4.2所示的情形。2004.11.3AI程序设计21第二部分:第4章VisualProlog概述4.3创建项目图4.2项目创建过程2004.11.3AI程序设计22第二部分:第4章VisualProlog概述4.3创建项目•左面的窗口是项目窗口(ProjectWindow),它包含项目中有关实体的各种信息。这个窗口现在尚不包含大量的信息,但当我们编译该项目时,各种信息就会被添加进来。我们将会较详细地分析在编译该项目时这个窗口所包含的各种信息。•左面或底部是消息窗口(MessagesWindow),它将包含各种状态信息和进展信息。2004.11.3AI程序设计23第二部分:第4章VisualProlog概述4.4建立项目•在我们做任何修改之前,我们将建立该项目,即编译和连接该项目。在建立(Build)菜单中,可以找到建立、编译和执行项目的菜单命令。•如果选择执行(Execute)命令,则该项目首先将会执行建立操作,这取决于执行程序的版本日期。因此,可以直接选择执行命令(或直接按下F9键)。•如果你还没有对VisualProlog进行注册,将会出现一个专门的屏幕信息进行提醒。建议对VisualProlog进行注册,也可以选择“继续”。2004.11.3AI程序设计24第二部分:第4章VisualProlog概述4.4建立项目•在消息窗口(MessagesWindow),VDE显示哪些文件被编译,等等。•如果建立进程成功,就像此例一样,所创建的程序被执行。本例现在的结果是只可以看见一个小的什么也不做的GUI程序。值得注意的是,这个程序看起来有点像VDE本身。因为VDE实际上就是一个VisualProlog程序,所以这一点并不是巧合。•在本章后面,我们还将看到,如果在程序建立过

1 / 73
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功