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号方案, GENESS 合成了比同一预算内现有方案高出28%的方案。