基于抽象语法树的软件语义分析方法研究

来源 :哈尔滨工程大学 | 被引量 : 0次 | 上传用户:zgr2020
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着计算机科学技术的发展,软件质量面临着新的任务和考验,软件语义分析作为一种提高软件质量的重要手段受到了社会的广泛关注。但是,目前主要的软件语义分析方法普遍存在着时间复杂度高、结果不准确的问题。论文提出了一种重建抽象语法树的算法,在很大程度上减少了抽象语法树的节点个数;然后,在该抽象语法树的基础上,提出了一种系统依赖图的优化算法,有效地降低了系统依赖图的规模;最后,论文基于简化的系统依赖图的可达性算法计算程序的切片,完成整个软件的语义分析。论文提到的软件语义方法对提高软件语义分析的速率和准确率具有很重要的意义。论文首先对GCC (GNU Compiler Collection,GNU编译器集合)产生的抽象语法节点的结构以及每部分的含义进行了简单介绍。针对GCC编译器产生的抽象语法树节点结构混乱,冗余节点多的问题,论文提出了一种基于GCC标准化文件的抽象语法树重建算法,通过对GCC产生的抽象语法树进行节点规范化、删除冗余节点等操作后,生成只包含有用节点的GCC标准化文件,基于该文件重建程序的抽象语法树,有效地减小了抽象语法树的节点规模。其次,论文提出了一种基于控制依赖图构建程序控制流图的算法,打破了传统系统依赖图中先建立控制流图,再建立控制依赖图的常规流程。如果用户只需要控制依赖关系,则可省略后续部分的操作,给软件语义分析带来了良好的灵活性。再次,在该抽象语法树的基础上,提出了一种基于依赖图等价代换的SSDG(simplified system dependence graph,简化的系统依赖图)构建算法,采用依赖图等价代换的思想,用程序依赖图代替系统依赖图,有效地降低了构建系统依赖图的复杂度。最后,论文采用基于SSDG可达性算法计算程序的动态切片,通过将程序执行过程分解为循环和非循环的两种情况,有效地避免了图的可达性算法中无法正确标记循环边的缺陷,并且图的可达性算法能够有效地避免数据流方程算法中因反复迭代造成的时间复杂度高的缺陷。论文采用VS2010仿真平台对文中提到算法进行模拟实现,实验证明,论文提到的软件语义分析算法与传统的分析算法相比,能够高效准确地计算程序切片。
其他文献
随着机群系统规模的增大,节点数目的增多,机群系统整体的可靠性会相应降低,故障的发生不可避免。同时,随着机群应用日益普及尤其是机群上商业应用服务的迅速发展,人们对机群
计算机网络技术是一把双刃剑。在加速信息革命,给人类带来诸多利益的同时也带来各种各样的安全隐患,甚至造成灾难性的后果。计算机操作系统本身的安全防护能力非常有限,而加密技
本文选择适用性强的三层前馈神经网络作为优化设计对象,提出了一种具有综合控制策略的遗传算法,同时考虑编码方案、适应度函数设计、初始群体的设定和遗传操作等各环节对遗传
传统的土地信息系统主要是针对图形及相关信息进行管理,侧重点在空间数据库或者在满足制图的要求方面。随着土地管理部门业务的扩展及新一轮土地利用规划修编工作的开始,传统
由于网络规模与技术的飞速发展,计算机网络已经成为人们生活中不可缺少的一部分。然而,日益严重的网络安全问题对个人甚至国家产生了巨大的威胁。IDS的发展对网络安全领域具有
故障诊断专家系统具有综合多个专家的最佳经验、实现人—机联合诊断等优点,具有强大的生命力和广阔的应用前景。压缩机作为增减压设备,是工业上应用量大面广的一种重要通用机
无线传感器网络是资源受限、分布式、自组织、多跳、以数据为中心的网络,其低成本和高灵活性的优点使其广泛应用于军事侦查、环境监测、医疗健康、交通监控等领域。数据融合
本文研究基于UNIX的数据库系统的各种索引结构设计方法,并具体实现了基于Hash表的索引结构。基于Hash表的索引结构是当前各种主流关系数据库管理系统所使用的基本索引结构之
信息集成就是要从多个自治的,分布的异构数据源中获取信息,建立多数据源的全局统一视图,而无需考虑数据类型、数据存储、物理位置等影响因素,随时随地提供对数据统一、透明的
随着网络的普及和信息技术的发展,校园网各种应用不断扩展和延伸,服务日益增多。用户如果要登录多个系统,不仅要面对多个登录界面,可能还要记忆不同的用户名和口令。每个系统