出具证明编译器原型系统的设计和实现

来源 :中国科学技术大学 | 被引量 : 0次 | 上传用户:gushangchen
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
现今计算机和互联网技术的迅速发展不仅带来了具有更强计算能力的计算机、更加便捷的信息交流方式,而且也对计算机软件的安全性和可靠性提出了更高的要求。目前软件安全性的保证主要是依靠程序设计者自身的能力以及软件测试。在软件开发过程中使用形式化方法进行程序验证是提高软件安全性的一个有效途径。 出具证明编译器是近些年来结合程序设计和程序验证技术所出现的研究方向。作为验证编译研究的一个分支,出具证明编译器的主要设计思想是整个系统能够在编译获得目标代码的同时也为这些目标代码生成用于说明目标代码满足某些程序性质的证明。 本文所介绍的工作基于我们的出具证明编译器原型系统项目,是我们进行出具证明编译研究的一次尝试。原型系统的设计和实现主要涉及到编译器技术、基于Hoare逻辑的程序验证技术等。此外,为了更好地考察与动态存储管理相关的程序性质,我们不仅在源语言的设计中保留了指针类型以及动态存储管理的语句,而且也设计了指针逻辑。 本文重点介绍了出具证明编译器原型系统中主要功能模块的实现,这些模块包括位于原型系统前端的验证条件生成器,位于后端的代码生成器和证明生成器。文中不仅描述了这些模块所使用的数据结构的设计以及它们各自的工作流程,而且也对设计和实现这些模块的过程中的经验进行了总结。同时,由于目标代码级程序性质证明框架的实现使用了定理证明辅助工具Coq,因此原型系统在设计和实现的过程中也加入了与Coq系统接口问题的考虑。 通过整个原型系统的构建,我们初步解决了出具证明编译中的若干问题,特别是源语言级验证条件以及目标代码级证明的生成问题。构建原型系统中积累的经验和教训可以为今后完善出具证明编译器提供很好的借鉴。
其他文献
新世纪以来,越来越多的科学和工程计算需要高性能计算,于是在传统的分布式计算技术上发展了元计算、正统的网格计算和对等计算等相关领域技术。网格环境下的资源分配与调度是一
随着计算机网络技术和通信技术的飞速发展,全球信息化已经成为不可阻挡的趋势。越来越多的企业和组织建立了与自己的关键业务相关的计算机网络系统,借以提高工作效率、降低成本
CAD系统的可扩充性与后续开发的延续性一直是困扰国内CAD产业发展的瓶颈。设计出具有良好的集成性,开放性和高效率的软件体系结构也是现阶段国际软件行业中研究的热点。因此,对
动态电源管理主要是为了在满足用户需求时动态调整系统资源状态,达到系统节能的效果。对于电池供电的嵌入式系统而言,延长电池的供电时间非常重要,DPM系统为我们延长电池使用
移动AdHoc网络(MobileAdhocNETworks,MANET)是一组具有路由功能的移动节点组成的分布式无线多跳网络,不依赖于任何预设的基础设施。MANET网络具有网络拓扑动态变化、无线传输带
当前,随着Web2.0概念的提出,AjaX技术作为富互联网应用程序(RichInternetApplications,RIA)实现技术中的一种,已成为web技术领域的研究热点。并且这股研究热浪在google推出google
变化是软件开发所面临的永恒主题,软件需求的变化给软件开发提出了很大的挑战。为了满足这种变化的需要,必然要设计一种能够和企业业务同步发展的软件体系结构。该体系结构应
近年来随着互联网的高速发展,人们进入海量的信息时代, XML以其强大的数据表达能力以及简单、开放性、可扩展等优点而逐渐成为互联网上信息发布和数据交换的标准。但随着XML
学位
随着计算机技术、通信技术以及互联网技术的飞速发展,基于网络的Web应用软件随之快速风靡全球,并渗入到社会的各个应用领域,成为当前和未来的软件系统开发的主流。为了保证日益
在四面体网格剖分之前,首先要建立待剖分三维实体边界表面的离散化表达,亦即由三角网格来代表三维实体表面。此时,三维实体的“边界”是指“边界表面网格”,它既具有几何性质