Automatic software generation based on some specification is known as program synthesis. Most existing approaches formulate program synthesis as a search problem with discrete parameters. In this paper, we present a novel formulation of program synthesis as a continuous optimization problem and use a state-of-the-art evolutionary approach, known as Covariance Matrix Adaptation Evolution Strategy to solve the problem. We then propose a mapping scheme to convert the continuous formulation into actual programs. We compare our system, called GENESYS, with several recent program synthesis techniques (in both discrete and continuous domains) and show that GENESYS synthesizes more programs within a fixed time budget than those existing schemes. For example, for programs of length 10, GENESYS synthesizes 28% more programs than those existing schemes within the same time budget.
翻译:基于特定规范的自动软件生成被称为程序合成。现有方法大多将程序合成表述为具有离散参数的搜索问题。本文提出了一种将程序合成表述为连续优化问题的新颖方法,并采用最先进的进化算法——协方差矩阵自适应进化策略——来解决该问题。随后我们提出一种映射机制,将连续表述转化为实际程序。我们将所提出的系统GENESYS与近期多种程序合成技术(涵盖离散与连续领域)进行对比,结果表明:在固定时间预算内,GENESYS合成程序的数量超过现有方案。例如,针对长度为10的程序,在同等时间预算下,GENESYS比现有方案多合成28%的程序。