abstract = "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 and discuss in this
survey the relevant evolutionary program synthesis
approaches in the literature 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. For the
stack-based approaches, we identify 37 in-scope papers
and for the grammar-guided and linear genetic
programming approaches, we identify 12 and 5 papers,
respectively. 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 output
for assessing the quality of a solution but also the
way towards a solution (e.g., correctly solved
sub-problems).",