一句话:提出基于 XML 中间程序表示的 PyGGI 2.0,使遗传改进算子和算法可跨目标语言复用。
PyGGI 是面向遗传改进(GI)的研究工具,旨在通用易用。2.0 版核心是 XML 中间程序表示,用户可定义与语言无关的 GI 算子和算法,并复用于多种目标语言。作者通过两个案例研究评估:在 QuixBugs 基准上做自动程序修复(含 Python/Java 缺陷程序),以及复现 MiniSAT 求解器的运行时优化/程序特化工作。结果显示 PyGGI 2.0 能为此前所有 APR 工具未修复的缺陷生成补丁,并在 MiniSAT 上获得 14% 运行时提升,表明新版本的适用性与表达力。
PyGGI is a research tool for Genetic Improvement (GI), that is designed to be versatile and easy to use. We present version 2.0 of PyGGI, the main feature of which is an XML-based intermediate program representation. It allows users to easily define GI operators and algorithms that can be reused with multiple target languages. Using the new version of PyGGI, we present two case studies. First, we conduct an Automated Program Repair (APR) experiment with the QuixBugs benchmark, one that contains defective programs in both Python and Java. Second, we replicate an existing work on runtime improvement through program specialisation for the MiniSAT satisfiability solver. PyGGI 2.0 was able to generate a patch for a bug not previously fixed by any APR tool. It was also able to achieve 14% runtime improvement in the case of MiniSAT. The presented results show the applicability and the expressiveness of the new version of PyGGI. A video of the tool demo is at: https://youtu.be/PxRUdlRDS40.