A journey among Java neutral program variants

A journey among Java neutral program variants
复制标题

Java 中性程序变体之旅

DOI:
10.1007/s10710-019-09355-3
复制
发表时间:
2019
影响因子:
2.6
通讯作者:
B. Baudry
B. Baudry
中科院分区:
计算机科学3区
文献类型:
--
作者:
Nicolas Harrand;Simon Allier;M. Rodriguez;Monperrus Martin;B. Baudry

文献摘要

参考文献

被引文献

相似文献

中性程序变体是程序的替代实现,但相对于测试套件等效。诸如近似计算或遗传改进之类的技术具有直觉,即增强潜力在于这些可接受的行为差异(例如,增强的性能或可靠性)。然而,通过程序转换的中性程序变体的自动合成仍然是一个关键挑战。根据测试套件,这项工作旨在表征Java程序中的塑料代码区域,即在保持功能正确性的同时修改的代码区域。我们的实证研究依赖于6个现实世界Java计划的自动变化。首先,我们通过三个最先进的程序转换来转换这些程序:添加,替换和删除语句。我们获得了23,445个中性变体的池,从中我们收集以下新颖的见解:开发人员自然编写支持细颗粒行为变化的代码;声明删除是一个令人惊讶的有效程序转换。高级设计决策(例如选择数据结构)是可以在保持功能的同时发展的自然点。其次,我们设计了针对特定塑料区域的3种新型程序转换。新的实验表明,合成变体的60%,58%和73%(总共175,688)是中性的,并且表现出与原始不同的执行痕迹。
Neutral program variants are alternative implementations of a program, yet equivalent with respect to the test suite. Techniques such as approximate computing or genetic improvement share the intuition that potential for enhancements lies in these acceptable behavioral differences (e.g., enhanced performance or reliability). Yet, the automatic synthesis of neutral program variants, through program transformations remains a key challenge. This work aims at characterizing plastic code regions in Java programs, i.e., the code regions that are modifiable while maintaining functional correctness, according to a test suite. Our empirical study relies on automatic variations of 6 real-world Java programs. First, we transform these programs with three state-of-the-art program transformations: add, replace and delete statements. We get a pool of 23,445 neutral variants, from which we gather the following novel insights: developers naturally write code that supports fine-grain behavioral changes; statement deletion is a surprisingly effective program transformation; high-level design decisions, such as the choice of a data structure, are natural points that can evolve while keeping functionality. Second, we design 3 novel program transformations, targeted at specific plastic regions. New experiments reveal that respectively 60%, 58% and 73% of the synthesized variants (175,688 in total) are neutral and exhibit execution traces that are different from the original.
DOI: 10.1109/tevc.2017.2693219
发表时间: 2018
影响因子: 14.3
作者:
Petke J
通讯作者: Petke J