一种基于区间抽象的数组分析方法

来源 :北京大学 | 被引量 : 0次 | 上传用户:zhp5211018
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
在计算机科学领域中,程序分析足一种自动化地分析计算机程序的行为的重要技术。程序分析技术主要应用于程序的优化和程序正确性验证两个方面。现代编译器常常会利用程序分析技术对程序源代码的分析结果来实现公共子表达式删除、死代码删除、循环优化等一系列代码优化策略。而在形式化方法中占据重要地位的模型检测技术也常常会与程序分析技术相结合来验证程序的安全性、活性等重要性质。   当前,程序分析领域的一个重要课题是如何自动化地分析程序中的数组所满足的性质。数组是计算机程序中最常见的数据结构之一,几乎所有大型的计算机程序都包含数组以及对数组的操作。早在上世纪七十年代,关于数组越界检查的程序分析技术就已被提出,并且已经在Java等程序语言中得到了成功的应用。但是关于数组内容的程序分析技术直到最近才得到广泛地研究。其主要原因在于一个数组在理论上可以包含无限多的数组元素,而一般的静态程序分析技术在面对数组时可能会因为数组元素过多而使分析程序无法终止。因此,现有的程序分析技术需要经过扩展来处理程序中的数组。   抽象解释是基于有序集合上的单调函数来对程序的语义做和谐逼近的理论。它可以被看做是通过对计算机程序的部分执行来获取程序的语义信息的方法。本文提出一种将抽象解释和程序分析技术相结合的方法来对程序中的数组及其上的操作进行分析,并自动发现数组的某些数值性质,比如数组中所有元素的取值范围。本文的主要工作是将P.Cousot和R.Cousot提出的基于区间抽象域对程序进行抽象解释的方法扩展到包含数组操作的程序中。为了满足数组分析的需要,我们将首先对经典的区间抽象域进行扩展,在其上定义了两个新的操作。然后利用规范抽象方法给出基于扩展的区间抽象域的数组程序分析算法。通过对几个常用的包含数组操作的程序进行的分析,表明本文提出的算法可以快速找到程序语义的上界逼近,并通过此逼近自动证明这些程序中数组所满足的重要性质。
其他文献
交通供需不平衡及异常事件频发导致了交通堵塞、能源浪费、环境污染和安全等严峻问题。智能交通系统(ITS)是解决这类问题的重要手段,可以有效的改善交通状况。由于不能对ITS项
传统的三维造型工具适用于精确模型的制作,需要一定的时间才可以掌握。基于自由手绘的草图工具极大地简化了设计,对草图进行模型创建是现阶段计算机图形学方面一个很热的话题,本
随着计算机技术的发展,数据流已经成为数据存在的一种常见形式,被广泛应用到金融、交通、军事等领域。研究人员设计开发了许多集中式数据流管理系统以及分布式数据流管理系统以
近几年来,随着Internet的飞速发展以及IP技术不断成熟,下一代网络NGN(Next Generation Network)和软交换技术为结合电话网和Internet提供了思路,而IP-PBX(PBX over IP)是该技
基于哼唱的歌曲检索系统是一个分析处理音频信号的系统。任何信号处理过程都难免受到噪声的干扰。用户输入歌曲检索系统的哼唱信号中夹杂的白噪声、有色噪声、脉冲噪声以及非
对物体材质的研究近年来成为真实感绘制的热门问题。真实世界的材质数字化不仅对真实感图像的合成十分重要,而且还有很多其它方面的应用,比如电子商务、数字图书馆、文化遗产等
随着Internet的飞速发展,Web服务已在人们生活中起着越来越重要的作用.与此同时,能够反应用户行为的Web信息数据也日渐丰富。网络日志作为Web数据的一种存储方式,由于其数据充分
随着软件产业的迅速发展,软件系统的功能和结构日益复杂,人们对于软件产品的质量要求也越来越高。最常用的程序质量问题检测的技术包括软件测试和形式化验证。两种方法各有优缺
地形渲染是虚拟现实技术中非常重要的一部分,也是计算机图形学一个热门的研究课题。它广泛应用于地理信息系统、战场仿真、飞行模拟、电子地图、地形漫游和游戏娱乐等方面。随
移动学习系统是一个新型的E-learning学习环境,利用移动技术随时随地的特性,为学习者提供更加便利的学习支持服务。在面向职业培训和在岗学习的移动学习系统中,学习资源是一种特