Comparing line and AST granularity level for program repair using PyGGI

Comparing line and AST granularity level for program repair using PyGGI
复制标题

使用 PyGGI 比较程序修复的行和 AST 粒度级别

DOI:
10.1145/3194810.3194814
复制
发表时间:
2018
期刊:
Proceedings of the 4th International Workshop on Genetic Improvement Workshop
影响因子:
--
通讯作者:
S. Yoo
S. Yoo
中科院分区:
--
文献类型:
--
作者:
Gabin An;Jinhan Kim;S. Yoo

文献摘要

参考文献

被引文献

相似文献

PyGGI是一个轻量级Python框架,可用于在API级别实现通用遗传改进算法。PyGGI的原始版本只提供了词法修改,即,在物理线路粒度级别上修改源代码。本文介绍了PyGGI的新扩展,它支持Python代码的语法修改,即,在AST粒度级别操作的修改。利用新的扩展,我们还提出了一个案例研究,比较自动程序修复的词法和语法搜索粒度级别,使用10个种子故障在真实的世界的开源Python项目。结果表明,由于成分空间的尺寸较小(即,我们从其搜索材料以构建补丁的空间),但是可能需要更长的搜索时间,因为更大数量的句法上完整的候选导致更多的适应性评估。
PyGGI is a lightweight Python framework that can be used to implement generic Genetic Improvement algorithms at the API level. The original version of PyGGI only provided lexical modifications, i.e., modifications of the source code at the physical line granularity level. This paper introduces new extensions to PyGGI that enables syntactic modifications for Python code, i.e., modifications that operates at the AST granularity level. Taking advantage of the new extensions, we also present a case study that compares the lexical and syntactic search granularity level for automated program repair, using ten seeded faults in a real world open source Python project. The results show that search landscapes at the AST granularity level are more effective (i.e. eventually more likely to produce plausible patches) due to the smaller sizes of ingredient spaces (i.e., the space from which we search for the material to build a patch), but may require longer time for search because the larger number of syntactically intact candidates leads to more fitness evaluations.
DOI: 10.1109/tevc.2017.2693219
发表时间: 2018
影响因子: 14.3
作者:
Petke J
通讯作者: Petke J