Learning to Represent Programs with Property Signatures
By Augustus Odena, Charles Sutton. 2020
34 citations recorded by the source corpus.
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 $\tau_{in}$ and output type $\tau_{out}$, a property is a function of type: $(\tau_{in}, \tau_{out}) \rightarrow \texttt{Bool}$ that (informally) describes some simple property of the function under consideration. For instance, if $\tau_{in}$ and $\tau_{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.
Subfields: Artificial Intelligence, Information Systems, Software, Natural Language Processing
How researchers see this paper
The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.
In Artificial Intelligence
- Quoc V. Le
- Charles Sutton
- Luke S. Zettlemoyer
- Percy Liang
- Augustus Odena
- Graham Neubig
- Mohit Bansal
- Denny Zhou
In Information Systems
- Carrie J. Cai
- Augustus Odena
- Jacob Austin
- Maarten Bosma
- David Dohan
- Henryk Michalewski
- Maxwell Nye
- Quoc V. Le
In Software
- Augustus Odena
- Henryk Michalewski
- Maarten Bosma
- David Dohan
- Jacob Austin
- Quoc V. Le
- Michael Terry
- Carrie J. Cai
In Natural Language Processing
- Charles Sutton
- Augustus Odena
- Quoc V. Le
- David Dohan
- Henryk Michalewski
- Maxwell Nye
- Maarten Bosma
- Jacob Austin
Citations in the corpus
- Program Synthesis with Large Language Models (2021, methodology): “, 2020], but these techniques have largely been applied to restricted domain-specific languages (DSLs) [Gulwani, 2011] or to languages that are more fully featured but that nevertheless are designed specifically with synthesis in mind [Odena and Sutton, 2020].”
- MISIM: An End-to-End Neural Code Similarity System (2020, background): “In recent years, there has been an emergence of many MP systems, due, in part, to advances in machine learning, formal methods, data availability, and computing effi-ciency [1, 3–5, 10, 13, 29, 32, 41, 44].”