基于Clight形式语义的代码功能描述提取研究

来源 :华南师范大学 | 被引量 : 0次 | 上传用户:liongliong546
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
信息化程度越来越高的今天,计算机软件复杂度的正不断提升,因此计算机软件开发的正确率和效率正变得越来越重要。一方面,“软件工程”的诞生改进了开发方法,从而提高了开发效率,“工作流”的产生同样使得开发人员在开发工作流系统时的效率大大提升;另一方面,“形式化”方法的研究大大提高了开发软件的正确性,保证了关键领域的软件开发的成功率。在保证正确率的前提下充分提高软件开发的效率成为了研究努力的方向,其中基于代码功能的集成便是其中一个热点。   要进行功能集成首先得实现功能查找,而功能匹配是功能查找的前提,功能提取又是功能匹配的前提。功能提取属于信息抽取的范畴,作为程序理解的第一步有着重要的意义。现有的功能提取方法(程序理解方法)多是基于关键字匹配和本体的提取,普遍存在着不准确和自动化率低的问题。因此,如何在保证正确性的前提下,充分提高功能提取的效率成为亟待解决的问题。本文的创新点在于将编程语言的形式语义(Clight自然语义)应用到代码功能描述中去,并提出了描述提取的机制和算法,并对算法进行了实例验证,以证明其可行性和有效性。   首先,本文分析了研究背景,介绍了形式化语义、功能描述提取以及规则引擎的研究现状,并最后阐述了本课题的研究目的和意义。重点介绍了操作语义及其应用、规则引擎应用及常见规则引擎工具对比,最后确定Clight自然语义和Drools规则引擎作为本文研究和实验的基础。并在第二章中对Clight自然语义和Drools规则引擎的原理做了详细阐述。   其次,本文提出了基于Clight形式语义的代码功能描述提取机制,这种机制严格基于Clight大步操作语义推理规则,忽略代码执行的中间细节,关注前、后存储状态的改变,并以此作为代码的功能描述。本文给出了基于Clight形式语义的代码功能描述提取算法,包括代码语法解析、语法单元转化语义单元、语义推理以及存储状态变化提取,讨论了该算法的时间和空间复杂度在最坏情况下分别为O(2^n)和O(n*2^n)。本文还阐述了Drools实现此功能提取自动化的难点。   最后,本文通过4个实例来验证本文提出的基于Clight形式语义的代码功能被描述提取机制和算法的可行性和有效性,并通过我们写的Drools程序进行提取。实验结果表明:不同语法实现相同功能的代码,通过我们的算法提取出的结果经过分析是相同的,而实现不同功能的代码提取出的结果也不同;我们的Drools程序对于包含顺序、分支和循环的简单代码的提取效果令人满意。本文在结尾对本文工作做了总结,并指出了下一步研究探索方向。
其他文献
随着软件产业的发展,越来越多的行业领域需要专业软件的支持,软件需求也越来越领域化、专业化,随之而来的是客户需求的快速变化和软件复杂度日渐增高。然而传统的软件开发方
作为电子商务的重要组成部分,基于Internet的电子交易受到了广泛的关注。SET交易过程十分复杂,在完成一次SET协议交易过程中,需验证电子证书9次,验证数字签名6次,传递证书7次
在储存海量数据的数据仓库中,由于其潜在的数据价值随着数据挖掘技术的发展与应用而被各研究领域所关注,包括商业、军事及科研等,涉及范围广泛,随着数据仓库安全性问题也得到
面向特定主题的信息采集是垂直搜索引擎的关键技术之一,直接影响到搜索结果的速度和相关性。研究面向特定主题的信息采集,应用分步骤判断方法计算页面相似度,改进PageRank链
随着移动通讯技术的迅速发展,移动电话等便携设备成了语音识别的重要应用领域。对于便携设备来说,运算量和网络带宽始终是制约语音识别应用的瓶颈。分布式语音识别的特点是:
近年来,随着国民经济信息化的不断发展以及Internet的普及,中文信息处理技术的应用日益广泛,如搜索引擎、自动翻译、语音识别、信息检索、自动分类、自动文摘、文本的自动校
语言是人类之间交流的最重要的工具,因此人们一直希望能不用键盘,不用手写,来操作计算机、手机、学习机、车载导航、以及智能玩具等各类信息终端产品,使它们都具备“能听会说
网络安全事件的频繁发生,使得人们对信息安全的关注度越来越高,如何合法的访问网络上受保护资源,变得异常重要。目前,PKI是解决信息安全问题的一种最成熟的技术手段,能够有效
SaaS模式是一种通过Internet提供软件的模式。厂商将应用软件统一部署在自己的服务器上,客户可以根据自己实际需求,通过互联网向厂商定购所需的应用软件服务,按定购的服务多
UMTS(Universal Mobile Telecommunication System,通用移动通信系统)引进IMS(IPMultimedia Subsystem,IP多媒体子系统)是移动网络向NGN(Next Generation Network,下一代网络