当前位置: X-MOL 学术Form. Methods Syst. Des. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Improving the results of program analysis by abstract interpretation beyond the decreasing sequence
Formal Methods in System Design ( IF 0.8 ) Pub Date : 2017-12-09 , DOI: 10.1007/s10703-017-0310-y
Rémy Boutonnet , Nicolas Halbwachs

The classical method for program analysis by abstract interpretation consists in computing first an increasing sequence using an extrapolation operation, called widening, to correctly approximate the limit of the sequence. Then, this approximation is improved by computing a decreasing sequence without widening, the terms of which are all correct, more and more precise approximations. It is generally admitted that, when the decreasing sequence reaches a fixpoint, it cannot be improved further. As a consequence, most efforts for improving the precision of an analysis have been devoted to improving the limit of the increasing sequence. In a previous paper, we proposed a method to improve a fixpoint after its computation. This method consists in computing from the obtained solution a new starting value from which increasing and decreasing sequences are computed again. The new starting value is obtained by projecting the solution onto well-chosen components. The present paper extends and improves the previous paper: the method is discussed in view of some example programs for which it fails. A new method is proposed to choose the restarting value: the restarting value is no longer a simple projection, but is built by gathering and combining information backward the widening nodes in the basic solution. Experiments show that the new method properly solves all our examples, and improves significantly the results obtained on a classical benchmark.

中文翻译:

通过超越递减序列的抽象解释改进程序分析的结果

通过抽象解释进行程序分析的经典方法包括首先使用称为加宽的外推操作计算递增序列,以正确逼近序列的极限。然后,通过计算一个没有加宽的递减序列来改进这种近似,其项都是正确的,越来越精确的近似。人们普遍承认,当递减序列达到一个固定点时,就不能进一步改进了。因此,提高分析精度的大部分努力都致力于提高递增序列的极限。在之前的一篇论文中,我们提出了一种在计算后改进固定点的方法。该方法包括从获得的解决方案计算一个新的起始值,从中再次计算递增和递减序列。新的起始值是通过将解决方案投影到精心挑选的组件上而获得的。本论文对前一篇论文进行了扩展和改进:针对该方法失败的一些示例程序进行了讨论。提出了一种选择重启值的新方法:重启值不再是简单的投影,而是通过向基本解中的加宽节点向后收集和组合信息来构建的。实验表明,新方法正确地解决了我们所有的例子,并显着改善了在经典基准上获得的结果。本论文对前一篇论文进行了扩展和改进:针对该方法失败的一些示例程序进行了讨论。提出了一种选择重启值的新方法:重启值不再是简单的投影,而是通过向基本解中的加宽节点向后收集和组合信息来构建的。实验表明,新方法正确地解决了我们所有的例子,并显着改善了在经典基准上获得的结果。本论文对前一篇论文进行了扩展和改进:针对该方法失败的一些示例程序进行了讨论。提出了一种选择重启值的新方法:重启值不再是简单的投影,而是通过向基本解中的加宽节点向后收集和组合信息来构建的。实验表明,新方法正确地解决了我们所有的例子,并显着改善了在经典基准上获得的结果。
更新日期:2017-12-09
down
wechat
bug