We present new techniques for synthesizing programs through sequences of mutations. Among these are (1) a method of local scoring assigning a score to each expression in a program, allowing us to more precisely identify buggy code, (2) suppose-expressions which act as an intermediate step to evolving if-conditionals, and (3) cyclic evolution in which we evolve programs through phases of expansion and reduction. To demonstrate their merits, we provide a basic proof-of-concept implementation which we show evolves correct code for several functions manipulating integers and lists, including some that are intractable by means of existing Genetic Programming techniques.
翻译:我们提出了通过变异序列合成方案的新技术,其中包括:(1) 一种当地评分方法,对方案中的每个表达方式评分,使我们能够更准确地确定错误代码;(2) 假设表达方式,作为进化有条件的中间步骤;(3) 循环演进,我们通过扩展和减少阶段来演化方案;为证明其优点,我们提供了基本的概念执行证明,我们为操纵整形和列表的若干功能,包括一些因现有基因规划技术而难以操作的功能,制定了正确的代码。