Version 2.0 of PyGGI has been released. The lead developer, Gabin, also presented the tool at the tool demo track at ESEC/FSE 2019. The new version supprots C, C++, and Java by using SrcML as the intermediate representation. The new version was a collaboration between Gabin An and Shin Yoo from COINSE, Aymeric Blot and Justyna Petke from CREST, University College London. A demo video is available on YouTube!
An, G., Blot, A., Petke, J. and Yoo, S., PyGGI 2.0: Language Independent Genetic Improvement Framework. Proceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering (New York, NY, USA), 1100–1104.
PyGGI is a research tool for Genetic Improvement (GI), that is de- signed 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 expressive- ness of the new version of PyGGI. A video of the tool demo is at: https://youtu.be/PxRUdlRDS40.