Evolving a Domain-Specific Language to Speed Up Program Synthesis

More Info
expand_more

Abstract

Program synthesis is used in various ways to automate repetitive tasks or to generate software automatically. Search-based program synthesis constitutes searching the space of candidate programs created from a given language. However, this form of program synthesis is very expensive in terms of computing power. By optimising the synthesiser’s parameters on certain tasks, program synthesis can be made more efficient on other similar tasks. One of these parameters is the domain-specific language. Using a genetic algorithm, an optimised language was evolved for three different domains. This resulted in unnecessary language predicates being phased out and commonly used structures being introduced as new language predicates. Overall, using these evolved languages made program synthesis faster for the tasks in all three domains.