一种程序设计语言模块系统的研究与实现.pdf

上传人:asd****56 文档编号:70337656 上传时间:2023-01-19 格式:PDF 页数:4 大小:189.86KB
返回 下载 相关 举报
一种程序设计语言模块系统的研究与实现.pdf_第1页
第1页 / 共4页
一种程序设计语言模块系统的研究与实现.pdf_第2页
第2页 / 共4页
点击查看更多>>
资源描述

《一种程序设计语言模块系统的研究与实现.pdf》由会员分享,可在线阅读,更多相关《一种程序设计语言模块系统的研究与实现.pdf(4页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第28卷 第5期大庆师范学院学报Vol.28No.52008年9月JOURNAL OF DAQ I NGNORMAL UN I VERSITYSeptember,2008一种程序设计语言模块系统的研究与实现王 冬 星(大庆师范学院 计算机科学与信息技术系,黑龙江 大庆163712)摘 要:G;del语言是一种新型逻辑程序设计语言1。通过对其模块系统进行研究与实现,在实现过程中采用了将用户模块和系统模块分开存放、独立管理的策略,以便使这两部分模块可以被很好地扩充和管理;同时还设计了系统命令,以便及时了解模块运行情况。这样在环境中实现的G;del语言模块系统不但减轻了G;del推理机的运行负担,也

2、方便了用户对模块的管理。关键词:计算机系统结构;模块系统;程序设计语言作者简介:王冬星(1977-),女,黑龙江大庆人,大庆师范学院计算机科学与信息技术系讲师,从事计算机理论与系统研究。中图分类号:TP391 文献标识码:A 文章编号:1006-2165(2008)05-0038-04 收稿日期:2008-03-030 引言逻辑程序设计语言是一种人工智能语言。近年来,随着人工智能和逻辑程序设计理论与技术的深入研究,逻辑程序设计语言得到了快速发展2。G;del语言正是在这种情况下产生的一种新型的逻辑程序设计语言。由于G;del语言说明性语义良好,缩小了逻辑程序设计中理论与实际之间的差距,使其在人

3、工智能和教学领域中有着广泛的应用前景。为了实现G;del语言W indows版本下的运行环境系统,在G;del语言的编辑、编译基础之上,对其模块系统进行了研究与实现。在G;del语言模块系统的实现过程中,采用了将用户模块和系统模块分开存放、独立管理的策略,以便使这两部分模块都可以被很好的扩充和管理,并且还提供了相应的模块操作的系统命令方便用户在程序执行时对模块的使用情况进行及时了解,也利于用户对模块的管理。1 模块系统的分析与介绍在G;del语言中,利用开发独立的构件即模块再组装成更大的应用程序,每个程序由一个或多个模块组成,每个模块的具体执行细节被封装,对其它模块是透明的3。G;del程序由

4、模块集Mini=0(n0)组成,模块集中至少包含一个主模块M0,子集Mini=1中的模块由M0直接或间接导入。每个模块通常由两部分组成:本地部分(用LOCAL或MODULE关键字说明)和输出部分(用EXPORT关键字说明),其由以下可选语言说明组成:MODULEEXPORTI MPORTBASECONSTRUCTORCONSTANTFUNCTI ONPRED ICATEDELAYPROPOSITI ON 由于一个G;del程序是由一个或多个模块组成,而每个模块又可由本地部分和输出部分组成,因此模83 1994-2008 China Academic Journal Electronic Pub

5、lishing House.All rights reserved.http:/块之间存在着一些特定的连接关系。2 模块系统的实现组织G;del语言模块系统实现的体系结构如图1所示,其中G;del推理机完成的任务是G;del程序的推理任务,通信接口完成G;del推理机与总控模块之间的通信任务。总控模块、模块存储器、G;del系统模块集和模块系统命令集是对模块系统实现的几个功能支撑。其中,总控模块在程序初次运行时需要从G;del的前端编译器中拷贝模块关系表来记载程序中模块之间的导入导出关系,并根据该模块关系表创建用户模块表放入到模块存储器中,用户模块表中记录了程序中每个用户模块的导入模块名及该模

6、块输出符号名和其它信息;总控模块还要在程序初次运行时调入G;del系统模块集和模块系统命令集,并初始化其操作环境;在程序运行中,总控模块需要接收从通信接口接收其发送来的模块信息和要使用的符号信息,进行搜索,将搜索到的符号信息返回给G;del推理机。图1模块系统实现的体系结构图模块存储器存放整个用户程序中已被装载或未被装载的模块文件,并且还存放一张用户模块表,表中会记录用户模块中每个模块的使用信息和其对应的模块文件名。模块的使用信息在执行过程中会被动态改变,所以模块存储器支持系统命令的动态访问,以便程序员及时了解用户模块的使用信息。G;del系统模块集中存放G;del模块系统中的20个系统模块。

7、系统模块中除了少量谓词和函数用C语言实现以外,其余的大部分谓词和函数用G;del语言实现,用户可以直接使用。当G;del推理机在调用到系统模块里的谓词或函数时,就相当于将已用G;del语言实现的系统谓词或函数的程序段直接加载到用户需要使用的程序中即可,为用户省去了编写大量常用谓词或函数的麻烦。G;del语言的20个系统模块之间存在着相应的导入导出的模块关系,而且每个模块均提供了与其模块名相对应数据类型上的大量谓词和函数供用户使用。模块系统命令集是G;del语言运行环境为用户提供的查询有关模块使用信息的内部命令,其可在环境运行主界面的目标录入及运行窗口中直接被用户使用,用户所要了解的信息也会在此

8、窗口中被显示出来。这些命令在系统启动时会被初始化其运行环境。3 模块系统的实现技术G;del语言模块系统的实现主要是通过搜索模块关系表、系统模块表和用户模块表来实现的。当总控模块接收到通信接口发送过来的信息要在模块module_name中使用导入符号i mport_name的定义信息时,总控模块会先在模块关系表中查找模块module_name都导入了哪几个系统模块,然后在这几个系统模块中查找是否有G;del推理机需要使用的导入符号import_name对应的信息。如果在系统模块中找到,则总控模块将导入符号import_name对应的信息返回给G;del推理机;否则,即没在系统模块找到i mpo

9、rt_name对应的信息,则在用户模块表中进行相应搜索,搜索成功,将import_name对应的信息返回给G;del推理机,否则返回查找失败的结果给推理机。其搜索过程如图2所示。图2导入符号的搜索流程93 1994-2008 China Academic Journal Electronic Publishing House.All rights reserved.http:/其中模块关系表只有两个域,它只是简单记录了用户程序中每个模块的模块名及该模块导入模块的名称,由总控模块在用户程序初次运行时从G;del语言的前端编译器中拷贝过来。因其结构简单,查找速度快,所以其作用相当于一张快表,在查询

10、某模块导入符号的信息时,先通过它找到该模块直接或间接导入的系统模块,然后在系统模块中查找是否有G;del推理机需要使用的符号信息,如果没找到则转到用户模块表中进行查找。用户模块表结构较为复杂,其存放于模块存储器中,详细记录了用户程序中每个模块的模块名,该模块对应的模块文件名,该模块是否已使用信息,该模块导入模块名以及该模块的输出符号信息。因其搜索速度较慢,所以对该表进行最后的搜索。而系统模块表是系统资源,事先已做好,由所有用户程序共享,表中记录了每个系统模块的模块名称及其输出符号名称和类型(即该输出符号为谓词类型、函数类型还是其它类型等等)。例如上文中程序M6,M5,Lists,Integer

11、s的模块关系表、用户模块表以及系统资源中的系统模块表如表1、表2和表3所示:表1 程序M6,M5,Lists,Integers的模块关系表模块名导入模块名M6M5,Lists,IntegersM5Lists,IntegersListsIntegers表2 程序M6,M5,Lists,Integers的用户模块表表3 系统模块表针对程序M6,M5,Lists,Integers,当运行目标In:Member(1,2,1,2,3)时,G;del语言模块系统的执行过程如下所示:1)G;del推理机在运行过程当中,会根据模块M6中谓词Member的定义信息导入符号谓词Append3的定义信息,其将这个需

12、要传给通信接口。通信接口接到任务需求后,利用send_mail(buffer,M6,Ap2pend3,1)函数向总控模块发送信件,表示G;del推理机要在名为M6的模块中使用导入谓词Append3。2)总控模块收到信后,首先在程序M6,M5,Lists,Integers的模块关系表中查询模块M6是否导入了系统模块。因模块M6导入了系统模块Lists,Integers,则总控模块将在系统模块Lists和Integers的信息指针中查找是否有谓词Append3的出现。3)因在系统模块Lists和系统模块Integers的信息指针中没有找到谓词Append3,则总控模块继续在程序M6,M5,List

13、s,Integers的用户模块表中继续进行搜索谓词Append3。在用户模块表内,查出模块M6导入了模块M5,而模块M5的输出符号中有Append3函数出现,则总控模块将模块M5中谓词Append3的相应信息通过通信接口返回给G;del推理机。4)当G;del推理机在使用谓词Append3进行推理时,又根据Append3的定义,调用模块M5中的导入谓词Append。这时通信接口再次利用send_mail(buffer,M5,Append,1)函数向总控模块发送信件,表示G;del推理机要在模块M5中使用导入符号为Append的谓词。5)总控模块收到信后,先会在程序M6,M5,Lists,Int

14、egers的模块关系表中查询模块M5是否导入了系统模块。因模块M5导入了系统模块Lists,Integers,则总控模块将在系统模块Lists和Integers的信息指针中查找是否有Append谓词的出现,结果在系统模块Lists的信息指针中找到。则总控模块将系统模块04 1994-2008 China Academic Journal Electronic Publishing House.All rights reserved.http:/Lists中谓词Append的相应信息通过通信接口返回给G;del推理机。6)G;del推理机根据模块系统返回的相应信息,得出运行结果进行输出:Out:

15、Yes.程序运行完毕。这样在G;del推理运行过程当中,在环境中实现的G;del模块系统一直为其提供了相应的服务,保证了G;del推理机的良好运行,同时又利于了用户对G;del程序的用户模块和系统模块进行合理化的管理。4 模块操作命令为了方便程序执行时,用户对模块的使用情况进行掌握,设计了一些有关模块操作的系统命令,供用户在程序的目标录入及执行窗口中直接使用。这些命令以sys_打头是系统命令,主要有以下几个:sys_current_module,搜索模块表列出用户程序中所使用所有的模块名。sys_current_module(module,file),显示模块名module所对应的文件名fil

16、e。sys_module_goal(goal),显示出目标goal所在的模块。sys_predicate_property(module,pred,prop),判定模块module中的谓词pred具有的属性prop(其属性可以是本模块导入的谓词、本模块输出的谓词或本地定义且并未输出的谓词三类)。sys_function_property(module,func,prop),判定模块module中的函数func具有的属性prop(其属性可以是本模块导入的函数、本模块输出的函数或本地定义且并未输出的函数三类)。sys_list(module),列出模块module中的所有子句。sys_curren

17、t_predicate(module),模块module中所有可用的谓词及其参数个数和其所属的模块名。5 结语针对一个程序设计语言的模块系统做了必要的分析与探讨后,对其模块系统进行了研究与实现。并在实现过程中,提供了相应的模块操作命令,方便用户在程序执行过程中对模块系统的使用情况进行及时了解,同时也利于用户对程序的用户模块和系统模块进行合理化管理。参 考 文 献1Paolo Ciancarini,Daniela Fogli,Mauro Gaspari.A Declarative Coordination LanguageJ.ComputerLanguages,2000,26(7):125-16

18、3.2王鼎兴,温冬婵,高耀清,等.逻辑程序设计语言及其实现技术M.北京:清华大学出版社,1996:1-15.3PM Hill,J W Loyd.The G;del ProgrammingLanguageM.USA:M IT Press,1994:30-90.I mplementation ofM odule System of a programm ing languageWANG Dong-xing(Department of Computer Science and Technology,Daqing Nor malUniversity,Daqing 163712,China)Abstra

19、ct:G;del is a new splendid logic programming language.It is one of the main results in the logicprogramming research area during the last three decades.This paper study and implements the module system ofit.During implementing,we adopt the policies of saving and managing usermodules and system modul

20、es sepa2rately,so that they can be well expended and managed.And we also design some commands about the G;delmodule system for users to know the using statusof the modules in time.So that it not only relieves the burden ofG;del consequence machine,but also is suited for users to manage the modules.Key words:computer systems organization;module system;programming language14 1994-2008 China Academic Journal Electronic Publishing House.All rights reserved.http:/

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com