摘要
提出了基于抽象解释框架自动合成数组程序不变式的方法,它能够分析按照特定顺序访问一维或者多维数组的程序,然后合成不变式.该方法将性质(包括区间全称量词性质和原子性质)集合作为抽象域,通过前向迭代数据流分析合成数组性质.证明了该方法的正确性和收敛性,并通过一些实例展示了该方法的灵活性.开发了一种原型工具,该工具在各种数组程序(包括competition on software verification中的array-examples benchmark)上的实验展示了方法的可行性和有效性.
This paper proposes a method of using abstract interpretation for discovering properties about array contents in programs which manipulate one-dimensional or multi-dimensional arrays by sequential traversal. The method directly treats invariant properties(including interval universally quantified formulas and atomic formulas) set as abstract domains. It synthesizes invariants by "iterating forward" analysis. This method is sound and converges in finite time. The paper demonstrates the flexibility of the method by some examples. The method has been implemented in a prototype tool. The experiments applying the tool on a variety of array programs(including array-examples benchmark of competition on software verification) demonstrate the feasibility and effectiveness of the approach.
作者
李彬
翟娟
汤震浩
汤恩义
赵建华
LI Bin;ZHAI Juan;TANG Zhen-Hao;TANG En-Yi;ZHAO Jian-Hua(State Key Laboratory for Novel Software Technology (Nanjing University), Nanjing 210023, China)
出处
《软件学报》
EI
CSCD
北大核心
2018年第6期1544-1565,共22页
Journal of Software
基金
国家自然科学基金(61632015
61561146394)
国家重点研发计划(2016YFB1000802)~~
关键词
不变式合成
抽象解释
数组程序
invariant synthesis
abstract interpretation
arrays programs