Interprocedural Semantic Change-Impact Analysis using Equivalence Relations

Interprocedural Semantic Change-Impact Analysis using Equivalence Relations
复制标题

使用等价关系的过程间语义变化影响分析

DOI:
--
复制
发表时间:
2016
期刊:
arXiv.org
影响因子:
--
通讯作者:
Nimrod Partush
Nimrod Partush
中科院分区:
--
文献类型:
--
作者:
A. Gyori;Shuvendu K. Lahiri;Nimrod Partush

文献摘要

被引文献

相似文献

变更影响分析(CIA)是确定受程序变更影响的程序元素集的任务。Precise CIA有很大的潜力,可以避免对重构(语义保留)的(部分)更改进行昂贵的测试和代码审查。现有的CIA是不精确的,因为它是粗粒度的,只处理很少的重构模式,或者不知道更改语义。 我们正式的概念变化的影响方面的两个程序版本的跟踪语义。我们展示了如何利用等价关系,使基于Challow-based CIA知道的变化语义,从而提高精度的语义保持变化的存在。我们提出了一个随时算法,允许应用昂贵的等价关系推理增量细化受影响的语句集。我们已经在SymDiff中实现了一个原型,并对先前研究使用的开源项目和基准程序的322个真实变化进行了评估。评估结果显示,与标准的基于XML的技术相比,受影响语句集的大小平均提高了35%。
Change-impact analysis (CIA) is the task of determining the set of program elements impacted by a program change. Precise CIA has great potential to avoid expensive testing and code reviews for (parts of) changes that are refactorings (semantics-preserving). Existing CIA is imprecise because it is coarse-grained, deals with only few refactoring patterns, or is unaware of the change semantics. We formalize the notion of change impact in terms of the trace semantics of two program versions. We show how to leverage equivalence relations to make dataflow-based CIA aware of the change semantics, thereby improving precision in the presence of semantics-preserving changes. We propose an anytime algorithm that allows applying costly equivalence relation inference incrementally to refine the set of impacted statements. We have implemented a prototype in SymDiff, and evaluated it on 322 real-world changes from open-source projects and benchmark programs used by prior research. The evaluation results show an average 35% improvement in the size of the set of impacted statements compared to standard dataflow-based techniques.