基于模板的可视化软件理解研究与实现

来源 :武汉大学 | 被引量 : 0次 | 上传用户:sms888
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
实现程序的机器自动理解是目前软件研究的一个热点.文章试图通过模板匹配的方式,通过静态匹配和动态匹配,并辅之以可视化手段,在一定范围内实现程序功能的机器识别.系统以文章定义的Small-C语言的源程序为输入,以源程序是否匹配已知的某一功能实现为输出.文章在对Small-C语言源程序进行词法分析、语法分析和语义检查的基础上,以语法树、问题分析图PAD为静态理解的辅助手段,对程序源代码进行结构层的分析,在此基础上将源程序的结构与模板库中对应的模板进行比较,从静态结构上理解程序的功能;以伪指令代码图、单步运行程序、监视程序运行过程中各个变量的值为动态理解的辅助手段,动态执行源程序,并将源程序的输出与模板库中的数据相比较,从数据流来理解程序的功能.静态匹配以源程序的结构为切入点,以人工理解程序的方法为原型,从确定的程序算法中提取若干信息构成有序的特征向量,特征向量就是静态匹配的模板.如果特征向量中的特征值提取得越多,重要性越高,那么静态模板就越接近实际目标,称模板越能够清晰描述算法原型,反之,静态模板就会偏离实际目标,称模板只能模糊描述算法原型.文章阐述了静态匹配得方法,但是由于静态匹配的模板在静态匹配中的重要地位,如何定义静态模板成为静态匹配的关键问题.目前,静态匹配的模板完全是模拟人的思维靠人工定义的,这具有很大的随意性和偶然性,因此如何利用形式化的方式定义静态模板是我们今后工作的重点.动态匹配则是建立在程序执行过程中监视指定存储空间值的变化情况基础之上的,动态匹配的基本思路是对指定的监视变量,在给定初始值的情况下,考察程序运行过程中各变量值的变化是否与预期相符.程序能够匹配给定的一组测试值并不能说明程序就是实现模板对应的功能,因此,动态模板也存在描述算法清晰度的问题,动态模板中给定的测试用例越多,描述的数据变化程度越大,对动态匹配的贡献越大.文章将软件理解的对象和功能限定在一定的范围内,从简短的程序理解入手,并逐步增加理解的深度和难度.文章试图将复杂程序功能转换为若干简单的程序功能的组合,将复杂程序的理解建立在简单程序理解的基础上,并提出了匹配度的概念用来描述源程序和模板吻合的程度.
其他文献
数据挖掘是从大量的数据中提取隐含的、事先未知的、并且潜在有用的知识的技术,是当前数据库和人工智能研究领域的热点之一。交通银行网上银行数据挖掘模块使用了基于OLAP的数
互联网的迅速发展,使得上网搜索信息成为了人们学习的一种重要方式。但是由于网上的学术资源数量庞大,质量参差不齐,如何让用户获得其感兴趣的学术资源并为用户智能地过滤掉
可视化语言是指采用图形方式对系统/软件进行描述的语言,可视化语言的编辑器是一种能让用户在计算机上交互式地使用可视化语言对系统方案进行设计和编辑的软件."语法制导"的
蠕虫等大规模爆发的网络安全事件的发生对Internet安全构成了巨大威胁.2001年以来发生的Code Red、Nimda、Slammer、Blaster等蠕虫足以证明这一点,人们对此造成的损害仍然记
数据挖掘语言的标准化和数据挖掘过程的可视化是数据挖掘研究的两个重要方向.可视化数据挖掘技术将数据挖掘工具与可视化展现工具融为一体,使用户与数据挖掘系统充分交互,从
该文重点解决了以下两个问题:一是基于RCS方法开放式运动控制器的设计与实现.运动控制器是数控系统的核心,控制器对实时性的严格要求限制了该部分的开放性.现有的开放式产品
近几年随着互联网的飞速发展,数据密集型应用及其产生的信息数据呈现爆炸式的增长趋势,而传统的存储系统已经无法满足现代企业海量数据的存储管理需求,云存储技术应运而生。分布
该论文从目前网络服务安全的最主要威胁——DoS/DDoS攻击入手,在深入分析和研究了DoS/DDoS攻击原理、形式和现有的防御技术的基础上,参考P2DR可适应性的动态网络模型,提出了
随着计算机与网络技术的不断发展,流媒体服务系统将会受到越来越多的重视。流媒体数据的访问需要占用大量的网络带宽,为了满足大量流媒体数据的实时播放要求,流媒体系统的架构尤
软件工程在现代软件开发中已经成为指导性的关键因素,软件过程则是软件工程的基础,在软件开发中,一个严格定义、可重复、可度量和不断优化的软件过程,是软件产品质量的重要保障。