论文标题

学会用财产签名代表程序

Learning to Represent Programs with Property Signatures

论文作者

Odena, Augustus, Sutton, Charles

论文摘要

我们介绍了属性签名的概念,这是通过机器学习算法用于消费的程序和程序规范的表示形式。给定输入类型$τ_{in} $和输出类型$τ_{out} $的函数,属性是类型的函数:$(τ_{in},τ_{out})\ rightArrow \ rightArrow \ texttt {bool} $(无限地)在考虑函数的某些简单属性中。例如,如果$τ_{in} $和$τ_{out} $都是同一类型的列表,则一个属性可能会问“输入列表是否与输出列表相同的长度?”。如果我们有此类属性的列表,我们可以将它们全部评估以获取我们称为属性签名的输出列表。至关重要的是,我们可以“猜测”仅给定一组输入/输出对的函数的属性签名,旨在指定该函数。我们讨论了财产签名的几种潜在应用,并在实验上表明它们可以用于改进基线合成器,以便在不到十分之十的时间内发射的两倍。

We introduce the notion of property signatures, a representation for programs and program specifications meant for consumption by machine learning algorithms. Given a function with input type $τ_{in}$ and output type $τ_{out}$, a property is a function of type: $(τ_{in}, τ_{out}) \rightarrow \texttt{Bool}$ that (informally) describes some simple property of the function under consideration. For instance, if $τ_{in}$ and $τ_{out}$ are both lists of the same type, one property might ask `is the input list the same length as the output list?'. If we have a list of such properties, we can evaluate them all for our function to get a list of outputs that we will call the property signature. Crucially, we can `guess' the property signature for a function given only a set of input/output pairs meant to specify that function. We discuss several potential applications of property signatures and show experimentally that they can be used to improve over a baseline synthesizer so that it emits twice as many programs in less than one-tenth of the time.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源