C程序的静态分析

来源 :中国科学院软件研究所 | 被引量 : 0次 | 上传用户:luocheng890924
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
近年来,随着软件在社会生活中的作用越来越重要,软件的正确性也越来越受到人们的重视。然而如何保证软件的正确性却是一个一直都没有得到很好解决的问题。在上世纪六七十年代人们就提出了程序验证的概念,但是程序验证一直不能很好的处理用实用的程序设计语言编写的程序,并且自动化程度也不高,现代软件的规模往往有数百万行代码,导致程序验证无法得以应用。另一方面,面向大规模实际程序的传统数据流分析主要的应用是编译优化,它们的目标是获取保守的、粗略的程序信息,从而也不适合于程序正确性的检测。   随着计算性能的提高以及自动定理证明技术的成熟,另一大类基于符号执行的精确的程序分析技术逐渐被人们所重视。符号执行是一种假设输入变量为符号值,精确的模拟程序执行的路径敏感的静态分析方法。符号执行在上世纪七十年代被提出,但是由于无法处理程序中的指针、数组等语言成分,一直无法得以广泛应用。本文针对使用极为广泛的C语言,设计了一套完整精确模拟C语言语义的算法和技术,包括内存建模,对各种表达式语义的模拟,函数调用的处理等。   作为符号执行技术的两种应用,本文对自动测试数据生成和内存泄漏检测分别进行了研究,提出了完整的算法,并实现了相应的工具。本文描述的符号执行算法目前已经在开源编译器Clang中得以实现,并还在不断改进之中。
其他文献
本文的研究内容是动态身份认证。设计了一种可以实现双向认证的动态身份认证方案,并实现了该方案的C/S模型。 文中首先从现有的身份认证系统出发,分析研究了基于S/KEY协议的
绿原酸作为蒲公英中的有效成分,在食品保鲜和医学领域均有着广泛的应用.为进一步提高绿原酸的提取效率、加强药理活性研究,本文整理了近年来蒲公英中绿原酸的提取方法,归纳总
随着社会的进步,人工智能技术也有了快速的发展,给人们的生活带来了一定的改变,也为工业发展带来了变革,在很大程度上促进了现代社会的进步,文明的发展.电气自动化是非常有利
基于构件的软件开发是网络环境下大型分布式企业开发的重要形式。构件通过封装一定的功能来提供可以复用、组装的软件资源,对外提供软件服务。传统的构件技术通过中间件提供事
视频编码技术以及网络传输技术和用户终端设备计算能力的飞速发展催生出多种类型的视频服务,如视频电话和会议、移动流媒体、视频监控、IPTV等。然而,异构网络的时变特性,用户终
文档作为信息的载体,在人类历史和社会进步中发挥着重要作用。近年来随着电子技术的发展,电子文档日益普及。同时网络技术的迅速发展,手持移动设备的成本愈加低廉、性能愈加强大
自20世纪80年代末利用卫星技术开展对候鸟迁徙进行跟踪研究以来,极大地促进了候鸟迁徙研究的发展,并取得了很大的成功。针对青海湖地区爆发的禽流感疫情,开展了青海湖候鸟的卫星
学位
黑龙江出版的《老年日报》2004 年3月18日“红叶”专栏刊《抒怀》诗:“人生七十古来稀,我把古稀当孩啼。不断奉献不畏苦,珍惜今天好时机。”作者是在抒发胸怀,虽然年 “Aged
民用飞行器重要的性能都是随着飞行器质量的增加而下降的,对于飞艇这类几乎完全由气体浮力维持升力的飞行器,其性能与质量的矛盾尤为突出.以复合材料制造的夹层结构和帽型筋
随着应用软件规模的日益增大,软件的运行环境越来越复杂,应用软件使用的中间件、第三方程序库越来越多,软件中包含的缺陷也越来越多。及时发现程序中的缺陷是软件领域的重要研究