Recent Developments in Program Synthesis with Evolutionary Algorithms

08/27/2021
by   Dominik Sobania, et al.
0

The automatic generation of computer programs is one of the main applications with practical relevance in the field of evolutionary computation. With program synthesis techniques not only software developers could be supported in their everyday work but even users without any programming knowledge could be empowered to automate repetitive tasks and implement their own new functionality. In recent years, many novel program synthesis approaches based on evolutionary algorithms have been proposed and evaluated on common benchmark problems. Therefore, we identify in this work the relevant evolutionary program synthesis approaches and provide an in-depth analysis of their performance. The most influential approaches we identify are stack-based, grammar-guided, as well as linear genetic programming. Further, we find that these approaches perform well on benchmark problems if there is a simple mapping from the given input to the correct output. On problems where this mapping is complex, e.g., if the problem consists of several sub-problems or requires iteration/recursion for a correct solution, results tend to be worse. Consequently, for future work, we encourage researchers not only to use a program's output for assessing the quality of a solution but also the way towards a solution (e.g., correctly solved sub-problems).

READ FULL TEXT

page 1

page 3

research
11/22/2022

Genetic Algorithm for Program Synthesis

A deductive program synthesis tool takes a specification as input and de...
research
11/15/2021

Choose Your Programming Copilot: A Comparison of the Program Synthesis Performance of GitHub Copilot and Genetic Programming

GitHub Copilot, an extension for the Visual Studio Code development envi...
research
06/10/2021

PSB2: The Second Program Synthesis Benchmark Suite

For the past six years, researchers in genetic programming and other pro...
research
05/17/2017

A Review on Bilevel Optimization: From Classical to Evolutionary Approaches and Applications

Bilevel optimization is defined as a mathematical program, where an opti...
research
05/25/2023

Learning-Based Automatic Synthesis of Software Code and Configuration

Increasing demands in software industry and scarcity of software enginee...
research
04/12/2023

Self Optimisation and Automatic Code Generation by Evolutionary Algorithms in PLC based Controlling Processes

The digital transformation of automation places new demands on data acqu...
research
07/08/2023

Multi-Intent Detection in User Provided Annotations for Programming by Examples Systems

In mapping enterprise applications, data mapping remains a fundamental p...

Please sign up or login with your details

Forgot password? Click here to reset