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.
翻译:基于模板的程序修理研究需要有一个共同点,以标准、可再使用的方式表达固定模式。我们提议以通用补丁(也称为语义补丁)概念为基础,在Linux社区广泛使用通用补丁(也称为语义补丁)概念,使代码演变自动化。我们主张,通用补丁可以同时提供统一的代表性和固定模式的规格。通用补丁确实得到了正式界定,并且有一个强大的、行业适应性的和可扩展的引擎,用于处理通用补丁,以进行控制流代码匹配,并根据特定变更操作自动生成混凝土补丁。我们在此文件中提出通用补丁(也称为语义补丁)概念的设计和实施,在LEXIIR社区中探索通用补丁,探讨通用补丁补补补补补补补办法,特别是,如何在自动补补补补补补补办法的管道中进行具体的通用补丁,以自动补缺补补补补补补补补补补补补补补。我们已接受的定期补补补补补补补补补补补补补补补补补补补办法,以简化的底底底底底底底,我们已评估了FILEARFA的底底基基底基底基底基底基底,我们已可衡量为CLILILILA的底底底底底基底基底底底底基。