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.
翻译:程序合成是指基于某些规范的自动软件生成。现有的大多数方法将程序合成公式化为具有离散参数的搜索问题。在本文中,我们将程序合成的公式化表示为连续优化问题,并使用最先进的进化方法之一Covariance Matrix Adaptation Evolution Strategy来解决问题。然后,我们提出了一种映射方案,将连续表示转换成实际程序。我们将我们的系统GENESYS与几种最近的程序合成技术(包括离散和连续领域)进行比较,并显示GENESYS在相同的时间预算内合成的程序比现有方案多28%。例如,对于长度为10的程序,在相同的时间预算内,GENESYS可以合成比现有方案多28%的程序。