抽象解释中的升序和降序阶段解耦

摘要:抽象解释以仿真具体程序在抽象域$mathbb{A}$上的固定点计算来近似程序的语义。抽象的(后)固定点计算经典地分为两个阶段:上升阶段使用扩展算子作为外推算子来强制终止,随后是下降阶段使用收敛算子来插值,以减小扩展算子引入的精度损失的影响。在本文中,我们提出了一种简单的变体,以更有效地恢复精度,将这两个阶段解耦:特别是,在开始下降阶段之前,我们用更准确的抽象域$mathbb{D}$替换抽象域$mathbb{A}$。这种方法的正确性通过将其视为A$^2$I框架的一个实例来证明。在演示了该新技术在一个简单示例上的效果后,我们总结了初步实验评估的结果,表明它能够在多种抽象域$mathbb{A}$和$mathbb{D}$的选择中获得显著的精度提升。

作者:Vincenzo Arceri and Isabella Mastroeni and Enea Zaffanella

论文ID:2206.10893

分类:Programming Languages

分类简称:cs.PL

提交时间:2022-06-23

PDF 下载: 英文版 中文版pdf翻译中