基于区间线性抽象域的可靠浮点及非凸静态分析
【摘要】:
软件的可信性已成为现代软件质量问题的焦点。发现并排除软件缺陷是构建可信软件的重要途径,这对于航天、国防、汽车等安全攸关应用尤其重要。科学与工程应用相关程序,特别是一些安全攸关嵌入式软件,一般与数学和物理有着紧密的联系,从而不可避免地会包含大量数值计算。因此,许多程序缺陷往往和程序中的数值性质密切相关,比如除零错、算术溢出、数组越界等运行时错误。
抽象解释是一种对程序语义进行近似(或抽象)的通用理论,并为静态分析提供了一个通用的框架。而抽象域则是抽象解释框架下的核心要素,通过选择特定的语义表示和操作算法来发现所关注的性质。数值抽象域可用来自动发现程序中的数值性质,即程序变量间的数值关系。经过数十年的发展,在基于抽象解释的数值程序分析领域,出现了许多面向不同数值性质、表达能力多样的数值抽象域。然而,大部分已有数值抽象域(尤其是关系型抽象域)都是采用多精度有理数来实现以保证可靠性,时空开销较大,从而影响到分析的计算效率和可扩展性;而且,大部分已有数值抽象域在表达能力方面存在凸性局限性,对析取的处理能力较弱;此外,已有数值抽象域尚不支持实际程序分析中常出现的区间系数。
本文主要研究数值抽象域的设计和实现。研究目标包括:探索数值抽象域的可靠浮点构造方法,以通过浮点实现来提高计算效率;设计新的数值抽象域使其能够表达非凸性质并支持区间系数,以通过增强表达能力来提高分析精度。本文主要工作如下:
1)提出了浮点多面体抽象域,作为经典凸多面体域的一种可靠浮点构造方法。凸多面体域是目前表达能力最强、应用最广泛的数值抽象域之一,但是其基于多精度有理数的实现在可扩展性和易处理性方面受到限制。本文仅基于凸多面体的约束表示(无需生成子表示)并采用浮点系数,给出了凸多面体抽象域的一种可靠浮点实现方法,以通过浮点实现来提高凸多面体域的计算效率和处理能力。由于基于约束的多面体域的复杂度主要源于其高代价的接合操作(即凸闭包),本文还提出了一系列低代价的弱接合操作。
2)把区间线性代数引入到程序分析中,提出了一系列支持区间系数的区间线性抽象域。区间(算术)为构造可靠的浮点抽象域提供了一种自然且有效的途径,并且在实现浮点多面体域过程中也产生了凸多面体表达能力之外的区间线性约束。本文提出了区间多面体抽象域,用以推导程序中变量间的区间线性不等式关系。该域可以看作是经典凸多面体域的区间系数扩展版本。作为一种受限情形,本文还提出了行阶梯形区间线性等式抽象域,用以推导区间线性等式关系。其表示方法基于区间线性等式系统的行阶梯形式,使得该域具有多项式的时空复杂度。该域可以看作是经典仿射等式抽象域的区间系数扩展版本。通过采用区间线性系统的弱解语义,这些区间线性抽象域能够天然地表达某类拓扑非凸(甚至非连通)性质。本文采用浮点数并基于向外舍入的区间算术可靠地实现了这些抽象域。
3)提出了一系列可表达非凸性质的线性绝对值抽象域。绝对值是数学中的一个基本概念,常用来描述数学或物理模型中的分段线性特征,并且可以表达非凸性质。本文给出并证明了线性绝对值不等式系统、区间线性不等式系统、广义线性互补问题(系统)三者之间的等价性,以及线性绝对值等式系统、水平线性互补问题(系统)两者之间的等价性。基于凸多面体的双重描述法,给出了广义线性互补问题(系统)的双重描述法,并作为其应用还给出了一种求解绝对值线性规划问题的新方法。在此基础上,本文提出了线性绝对值不等式抽象域(用来推导线性绝对值不等式/区间线性不等式/广义线性互补不等式关系)和线性绝对值等式抽象域(用来推导线性绝对值等式/水平线性互补等式关系)。线性绝对值不等式域是经典多面体域的一般化,虽然表达能力与区间多面体域相同,但是其域操作都是具体域上对应操作的最佳抽象。而线性绝对值等式域是经典仿射等式域的一般化。基于广义线性互补系统的双重描述法并采用多精度有理数实现了这两个抽象域。
本文提出的数值抽象域在分析精度和计算效率间进行了不同的权衡,可以面向不同的应用。这些抽象域都在数值抽象域库APRON中得以实现,并且实验结果令人鼓舞。
|
|
|
|
1 |
杨质
,李淑玲;几个浮点子程序的设计及其应用[J];电光与控制;1990年04期 |
2 |
李笑盈,孙富明,夏宏;浮点加法运算器前导1预判电路的实现[J];计算机工程与应用;2002年21期 |
3 |
黎铁军;李秋亮;徐炜遐;;一种128位高性能全流水浮点乘加部件[J];国防科技大学学报;2010年02期 |
4 |
盛利元;全俊斌;;计算机迭代下混沌序列的周期研究[J];计算机应用;2010年07期 |
5 |
沈涵,陈进;高性能浮点DSP芯片加法运算单元的研究与设计[J];通信技术;2003年11期 |
6 |
王永;夏宏;;高性能浮点乘法的设计[J];中国电力教育;2007年S3期 |
7 |
;产品[J];电子设计应用;2007年04期 |
8 |
;德州仪器推出最新Stellaris ARM Cortex-M4F微控制器可提供领先的模拟集成、业界一流的低功耗及浮点性能[J];电子设计工程;2011年20期 |
9 |
秦瑞杰,李文全,林君;一种新颖的瞬时浮点放大器[J];航空计测技术;1997年04期 |
10 |
范继聪;洪琪;;单双精度浮点加法的可重构设计研究[J];计算机工程与设计;2013年11期 |
11 |
杜慧敏;马超;;一种快速浮点乘法单元的设计与实现[J];西安邮电大学学报;2013年01期 |
12 |
刘占清
,黄永华;浮点推荐标准的分析[J];小型微型计算机系统;1982年03期 |
13 |
王蔚,陈霏,宁新保,张胜;一种浮点DSP芯片的通用串行通信接口电路设计[J];制造业自动化;2002年06期 |
14 |
雷宏洲;;J2ME浮点计算的简单实现[J];计算机与信息技术;2007年11期 |
15 |
张家田;刘新英;严正国;;DSP的定点溢出处理技术[J];中国科技信息;2008年24期 |
16 |
张益;袁著;罗金选;;一种新型的定点到浮点转换的全流水线FPGA实现[J];微电子学与计算机;2012年08期 |
17 |
姜加红;陈立前;王戟;;基于浮点区间幂集抽象域的浮点程序分析[J];计算机科学与探索;2013年03期 |
18 |
Robert L Cassola;刘学君;;用于军用计算机的浮点模块[J];航空计算技术;1984年01期 |
19 |
宁正元;浮点机设计中的两个重要问题[J];现代电子技术;1994年03期 |
20 |
陈博文;郭琦;沈海华;;浮点乘加部件的自动化形式验证[J];计算机研究与发展;2010年S1期 |
|