论文标题
代码构建基因编程
Code Building Genetic Programming
论文作者
论文摘要
近年来,基因编程领域已在自动编程方面取得了重大进步。当代计划合成方法的研究和开发,例如PUSHGP和语法指导的基因编程,可以生成解决通常在入门学术环境中分配的问题的程序。这些问题集中在狭窄的,预定的简单数据结构,基本控制流模式以及原始,非重叠的数据类型(例如继承或复合类型)上。很少有(如果有的话)令人信服地证明了用于程序综合的基因编程方法,可以证明使用了使用任意数据类型,数据结构和从现有代码库中提取的任意数据类型,数据结构和规格的程序的能力。在本文中,我们通过利用编程语言功能(例如反思和一流的规格),将代码构建基因编程(CBGP)作为一个框架。 CBGP产生的计算图可以执行或翻译成主机语言的源代码。为了证明CBGP的新功能,我们在使用非质量,多态性数据类型以及某些标准程序合成基准的新基准上介绍了结果。
In recent years the field of genetic programming has made significant advances towards automatic programming. Research and development of contemporary program synthesis methods, such as PushGP and Grammar Guided Genetic Programming, can produce programs that solve problems typically assigned in introductory academic settings. These problems focus on a narrow, predetermined set of simple data structures, basic control flow patterns, and primitive, non-overlapping data types (without, for example, inheritance or composite types). Few, if any, genetic programming methods for program synthesis have convincingly demonstrated the capability of synthesizing programs that use arbitrary data types, data structures, and specifications that are drawn from existing codebases. In this paper, we introduce Code Building Genetic Programming (CBGP) as a framework within which this can be done, by leveraging programming language features such as reflection and first-class specifications. CBGP produces a computational graph that can be executed or translated into source code of a host language. To demonstrate the novel capabilities of CBGP, we present results on new benchmarks that use non-primitive, polymorphic data types as well as some standard program synthesis benchmarks.