arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 2011.13280cs.SE
收藏

FlexiRepair:使用通用补丁的透明程序修复

FlexiRepair: Transparent Program Repair with Generic Patches

Anil Koyuncu, Tegawendé F. Bissyandé, Jacques Klein, Yves Le Traon

摘要:

基于模板的程序修复研究需要一个共同的基础,以标准和可重用的方式表示修复模式。我们建议建立在通用补丁(也称为语义补丁)的概念上,这在Linux社区中被广泛用于自动化代码进化。我们主张通用补丁可以同时提供一个统一的表示和修复模式的规范。通用补丁确实是正式定义的,并且存在一个健壮的、适应行业的、可扩展的引擎,该引擎处理通用补丁以执行控制流代码匹配,并基于指定的更改操作自动生成具体补丁。在本文中,我们提出了一个修复框架,FLEXIREPAIR,探讨通用补丁的核心概念的设计和实现。特别是,我们展示了如何具体的通用补丁可以推断和应用在管道中的自动程序修复(APR)。通过FLEXIREPAIR,我们解决了基于模板的APR社区面临的一个紧迫挑战,即通过提供一个开放、透明和灵活的修复管道,将实施细节与实际的科学贡献分开,在此基础上,可以严格衡量和评估效率、有效性和可用性方面的所有进步。此外,由于基础工具和概念已经被广泛的从业者社区所接受,我们希望FLEXIREPAIR能够被行业所采用。在IntroClass和CodeFlaws基准测试上使用原型FLEXIREPAIR进行的初步实验表明,它已经构成了一个坚实的基线,其性能与某些最先进的性能相当。

英文摘要:

Template-based program repair research is in need for a common ground to express fix patterns in a standard and reusable manner. We propose to build on the concept of generic patch (also known as semantic patch), which is widely used in the Linux community to automate code evolution. We advocate that generic patches could provide at the same time a unified representation and a specification for fix patterns. Generic patches are indeed formally defined, and there exists a robust, industry-adapted, and extensible engine that processes generic patches to perform control-flow code matching and automatically generates concretes patches based on the specified change operations. In this paper, we present the design and implementation of a repair framework, FLEXIREPAIR, that explores generic patches as the core concept. In particular, we show how concretely generic patches can be inferred and applied in a pipeline of Automated Program Repair (APR). With FLEXIREPAIR, we address an urgent challenge in the template-based APR community to separate implementation details from actual scientific contributions by providing an open, transparent and flexible repair pipeline on top of which all advancements in terms of efficiency, efficacy and usability can be measured and assessed rigorously. Furthermore, because the underlying tools and concepts have already been accepted by a wide practitioner community, we expect FLEXIREPAIR's adoption by industry to be facilitated. Preliminary experiments with a prototype FLEXIREPAIR on the IntroClass and CodeFlaws benchmarks suggest that it already constitutes a solid baseline with comparable performance to some of the state of the art.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑