Genetic improvement of software: a comprehensive survey
Genetic improvement (GI) uses automated search to find improved versions of existing
software. We present a comprehensive survey of this nascent field of research with a focus …
software. We present a comprehensive survey of this nascent field of research with a focus …
The plastic surgery hypothesis
Recent work on genetic-programming-based approaches to automatic program patching
have relied on the insight that the content of new code can often be assembled out of …
have relied on the insight that the content of new code can often be assembled out of …
Optimizing existing software with genetic programming
We show that the genetic improvement of programs (GIP) can scale by evolving increased
performance in a widely-used and highly complex 50000 line system. Genetic improvement …
performance in a widely-used and highly complex 50000 line system. Genetic improvement …
Current challenges in automatic software repair
The abundance of defects in existing software systems is unsustainable. Addressing them is
a dominant cost of software maintenance, which in turn dominates the life cycle cost of a …
a dominant cost of software maintenance, which in turn dominates the life cycle cost of a …
Automated software transplantation
Automated transplantation would open many exciting avenues for software development:
suppose we could autotransplant code from one system into another, entirely unrelated …
suppose we could autotransplant code from one system into another, entirely unrelated …
Search based software engineering for software product line engineering: a survey and directions for future work
This paper presents a survey of work on Search Based Software Engineering (SBSE) for
Software Product Lines (SPLs). We have attempted to be comprehensive, in the sense that …
Software Product Lines (SPLs). We have attempted to be comprehensive, in the sense that …
Using genetic improvement and code transplants to specialise a C++ program to a problem class
Genetic Improvement (GI) is a form of Genetic Programming that improves an existing
program. We use GI to evolve a faster version of a C++ program, a Boolean satisfiability …
program. We use GI to evolve a faster version of a C++ program, a Boolean satisfiability …
Assured Offline LLM-Based Software Engineering
In this paper we address the following question: How can we use Large Language Models
(LLMs) to improve code independently of a human, while ensuring that the improved code …
(LLMs) to improve code independently of a human, while ensuring that the improved code …
Post-compiler software optimization for reducing energy
Modern compilers typically optimize for executable size and speed, rarely exploring non-
functional properties such as power efficiency. These properties are often hardware-specific …
functional properties such as power efficiency. These properties are often hardware-specific …
Software mutational robustness
Neutral landscapes and mutational robustness are believed to be important enablers of
evolvability in biology. We apply these concepts to software, defining mutational robustness …
evolvability in biology. We apply these concepts to software, defining mutational robustness …