Towards grammar-aware operators for automatic improvement of software

Funded by The Carnegie Trust.

Collaboration with Edinburgh Napier University, Queen Mary, University of London and University of Sheffield.

Software maintenance is one of the most time-consuming aspects of software development: valuable time is wasted on repair and improvements that could be better spent developing new features. Many parts of software maintenance are simply search problems, e.g. trying subtly different ways to implement particular routines, or choosing the order in which inter-related software components should be assembled. Genetic Improvement (GI) is a new technique that applies search-based optimisation methods to improving existing code, with the potential to reduce developer effort in maintance considerably. GI makes changes to the code, evaluates the resulting program, and uses this feedback to try further changes. This goes beyond conventional optimisations applied when the code is first compiled, to tune programs for specific usage patterns or input data, and can be used to fix bugs, or (for example) make the code run faster. However, existing GI techniques largely rely on coarse-grained code changes, like moving whole lines or statements. While GI has proven surprisingly effective for real-world programs, it ignores the subtleties of the programming language, making the search inefficient. This project will implement new GI operators that respect the Java programming language's grammar, and test their effectiveness when applied to well-used open-source software projects. This will improve understanding of how GI works, and build a foundation for further study beyond the life of the project. The operators will also be made available to the research community via the open-source GI framework GIN, for which the PI is already a contributor.

Total award value £9,908.00

People (1)


Dr Sandy Brownlee

Dr Sandy Brownlee

Senior Lecturer in Computing Science, 72

Outputs (3)


Conference Proceeding

Brownlee AEI, Petke J & Rasburn AF (2020) Injecting Shortcuts for Faster Running Java Code. In: 2020 IEEE Congress on Evolutionary Computation (CEC). IEEE World Congress on Computational Intelligence, Glasgow, 19.07.2020-24.07.2020. Piscataway, NJ, USA: IEEE, pp. 1-8.;

Conference Proceeding

Petke J & Brownlee AEI (2019) Software Improvement with Gin: A Case Study. In: Nejati S & Gay G (eds.) Search-Based Software Engineering. SSBSE 2019. Lecture Notes in Computer Science, 11664. 11th International Symposium on Search Based Software Engineering, Tallinn, Estonia, 31.08.2019-01.09.2019. Cham, Switzerland: Springer Verlag, pp. 183-189.

Research programmes

Research themes