基于转换的程序分析技术的研究与应用

来源 :广东工业大学 | 被引量 : 6次 | 上传用户:cxddqqqqqq
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
程序的分析技术在许多领域有广泛的应用前景。例如,对学生程序的自动分析评价;利用程序分析比较工具来辅助软件版权的分析鉴别。但是目前程序分析评价技术主要停留在程序输出结果的比较,并不能发现那些通过编译但语义上有问题的程序的错误;曾有个别学者尝试过在语义上分析评价程序,但是分析的目标语言并不是国内外计算机教育普遍采用的编程语言。相关的研究,如程序理解、程序度量和程序转换,虽然和程序分析评价的研究有一定的联系,但是国内外鲜有将其综合起来用于程序分析评价的研究。本文研究基于转换的程序分析技术及其在程序评价上的应用,并讨论了在其他方面的应用前景。在研究编译器转换技术和代码优化相关技术的基础上,提出了用于分析评价C语言程序的AnalyseC框架,并实现了其软件原型。AnalyseC对程序分别进行结构相似性分析和语义分析评价,实现了程序度量及其可视化、程序转换及其可视化、程序分析评价等功能。在AnalyseC中,使用ANTLR构造一个以抽象语法树为中间代码的C语言分析器。在结构层次上,AnalyseC基于程序的抽象语法树,应用传统的软件度量对程序进行分析和可视化,并提出将数据结构的使用列为程序度量的元素之一,实现程序的结构相似性分析。在语义层次上,使用在编译器当中用于代码优化的程序依赖图作为程序的表现形式。编译器使用代码优化相关技术的目的是使程序运行得更加快,AnalyseC使用该技术的目的是借助程序依赖图用于程序比较。应用编译器的转换技术、内联扩展技术、前向替换等代码优化相关技术,对程序进行保留语义的标准化转换、控制流分析和数据流分析,形成可以在语义上进行比较的程序依赖图,最终通过程序划分、比较,实现程序的分析评价。程序以源代码的形式提供给AnalyseC,AnalyseC在结构层次和语义层次对程序进行分析,得出结构分析结果和语义分析结果,可以辅助教师评改编程作业,同时也给予学生一定的上机辅导,提示程序可能出错的地方。AnalyseC已经应用于数据结构算法设计作业的分析与评价,能够分析评价部分学生作业。但是AnalyseC目前还是个软件原型,需要更多的努力使其完善,实际应用于程序的自动分析评价和其他的应用领域。
其他文献
随着互联网的发展,涌现出大量同类网站(例如房产网、吃玩网、旅游网等),由于各个网站间信息的孤立性,人们为获得有效信息不得不游离于各个网站之间。虽然,像谷歌、雅虎、百度
随着机场信息化的不断发展,网络规模不断扩大,网络结构变得越来越复杂和多样化。如果某个网络设备出现故障或运行状态不佳,将会导致运营效率的下降,甚至导致整个机场的瘫痪。传统
由于误报率低并且报警结论明确,滥用检测一直是实践中入侵检测系统(IDS)主要采取的技术。同时,面对现实中越来越多的多阶段入侵,人们的共识是将多阶段入侵视为由多个行为组成、
随着Internet的飞速发展,网上的数据资源空前的丰富。每天都会有成千上万的用户在网络上浏览和寻找自己所需的信息。然而,由于庞大的信息量,对于每个用户来说,如何能够及时快
摄影测量技术(Photogrammetry)是一种通过记录、测量和解读图像信息及其他电磁辐射现象的模式获取物体和环境的可靠信息的科学和技术。该技术在航空遥感分析、3D场景重建、交
由于XML数据具有自描述特点,可以支持用户自定义的标记,符合Internet上数据描述和存储的需求,所以XML正在逐渐成为Internet上数据表示和数据交换的实际标准。随着其规模和复
生物信息学,是作为80年代兴起的交叉学科,可破译隐藏在DNA序列中的遗传语言。如今,随着生物信息学与计算机科学的高速发展,国际国内的相关研究越来越多,各种生物数据呈爆炸式
Voronoi图是计算几何的一种仅次于凸包的重要几何结构,也是计算几何的重要研究内容之一。由于Voronoi图具有最近性、邻接性等众多性质和比较系统的理论体系,如今已经在图形学
随着Internet的繁荣,网络入侵事件频繁发生,各种攻击手段也层出不穷,其中拒绝服务攻击DoS以其攻击范围广、隐蔽性强、简单有效、破坏性大和难以防御等特点成为最常见的网络攻
关于如何捕获自然界的视觉图像信息并存储一直都是人们比较关注的课题。近几年,随着电子科学技术的不断进步,视频技术得到快速发展,各种视频采集设备层出不穷,视频以其良好的