一句话:提出定量符号非等价分析,可量化程序行为差异并展示其在 EqBench 上对 C 程序版本非等价推理的有效性。
现有等价性分析主要判断不同程序或同一程序的不同版本是否具有完全相同的行为,但针对“非等价”的细致、定量推理技术仍然缺乏。本文提出定量符号非等价分析(quantitative symbolic non-equivalence analysis),以符号化方式对程序间行为差异进行量化刻画,而不仅给出等价/非等价的二元结论。作者在 EqBench——目前最大的等价性分析基准——上评估该方法,并展示其可用于推理不同版本 C 程序的非等价性。实验覆盖该基准并验证了其有效性。
Equivalence analysis focuses on assessing whether different programs, or different versions of a program, exhibit identical behavior. While extensive research has been done on equivalence analysis, there is a lack of detailed and quantitative reasoning techniques for non-equivalence. In this paper we introduce quantitative symbolic non-equivalence analysis and evaluate its effectiveness on the EqBench [3] benchmark (the largest available benchmark for equivalence analysis), and demonstrate how it can be used for reasoning about the non-equivalence of different versions of C programs.