Automatic Programming As An Open-Ended Evolutionary System

Authors

  • Sebastian Fix FHNW University of Applied Sciences and Arts Northwestern Switzerland, Institute for Information Systems, Riggenbachstrasse 16, 4600 Olten, Switzerland
  • Thomas Probst FHNW University of Applied Sciences and Arts Northwestern Switzerland, Institute for Information Systems, Riggenbachstrasse 16, 4600 Olten, Switzerland
  • Oliver Ruggli FHNW University of Applied Sciences and Arts Northwestern Switzerland, Institute for Information Systems, Riggenbachstrasse 16, 4600 Olten, Switzerland
  • Thomas Hanne FHNW University of Applied Sciences and Arts Northwestern Switzerland, Institute for Information Systems, Riggenbachstrasse 16, 4600 Olten, Switzerland

Keywords:

Automatic programming, combinatorial evolution, open-endedness

Abstract

Combinatorial evolution – the creation of new things through the combination of existing things – can be a powerful way to evolve rather than design technical objects such as electronic circuits. Intriguingly, this seems to be an ongoing and thus open-ended process creating novelty with increasing complexity. Here, we employ combinatorial evolution in software development. While current approaches such as genetic programming are efficient in solving particular problems, they all converge towards a solution and do not create anything new anymore afterwards. Combinatorial evolution of complex systems such as languages and technology are considered openended. Therefore, open-ended automatic programming might be possible through combinatorial evolution. We implemented a computer program simulating combinatorial evolution of code blocks stored in a database to make them available for combining. Automatic programming in the sense of algorithm-based code generation is achieved by evaluating regular expressions. We found that reserved keywords of a programming language are suitable for defining the basic code blocks at the beginning of the simulation. We also found that placeholders can be used to combine code blocks and that code complexity can be described in terms of the importance to the programming language. As in a previous combinatorial evolution simulation of electronic circuits, complexity increased from simple keywords and special characters to more complex variable declarations, class definitions, methods, and classes containing methods and variable declarations. Combinatorial evolution, therefore, seems to be a promising approach for open-ended automatic programming.

Downloads

Download data is not yet available.

Downloads

Published

2022-01-01

How to Cite

Sebastian Fix, Thomas Probst, Oliver Ruggli, & Thomas Hanne. (2022). Automatic Programming As An Open-Ended Evolutionary System. International Journal of Computer Information Systems and Industrial Management Applications, 14, 9. Retrieved from https://cspub-ijcisim.org/index.php/ijcisim/article/view/499

Issue

Section

Original Articles