TY - GEN
T1 - Recursive program synthesis
AU - Albarghouthi, Aws
AU - Gulwani, Sumit
AU - Kincaid, Zachary
PY - 2013
Y1 - 2013
N2 - Input-output examples are a simple and accessible way of describing program behaviour. Program synthesis from input-output examples has the potential of extending the range of computational tasks achievable by end-users who have no programming knowledge, but can articulate their desired computations by describing input-output behaviour. In this paper, we present Escher, a generic and efficient algorithm that interacts with the user via input-output examples, and synthesizes recursive programs implementing intended behaviour. Escher is parameterized by the components (instructions) that can be used in the program, thus providing a generic synthesis algorithm that can be instantiated to suit different domains. To search through the space of programs, Escher adopts a novel search strategy that utilizes special data structures for inferring conditionals and synthesizing recursive procedures. Our experimental evaluation of Escher demonstrates its ability to efficiently synthesize a wide range of programs, manipulating integers, lists, and trees. Moreover, we show that Escher outperforms a state-of-the-art SAT-based synthesis tool from the literature.
AB - Input-output examples are a simple and accessible way of describing program behaviour. Program synthesis from input-output examples has the potential of extending the range of computational tasks achievable by end-users who have no programming knowledge, but can articulate their desired computations by describing input-output behaviour. In this paper, we present Escher, a generic and efficient algorithm that interacts with the user via input-output examples, and synthesizes recursive programs implementing intended behaviour. Escher is parameterized by the components (instructions) that can be used in the program, thus providing a generic synthesis algorithm that can be instantiated to suit different domains. To search through the space of programs, Escher adopts a novel search strategy that utilizes special data structures for inferring conditionals and synthesizing recursive procedures. Our experimental evaluation of Escher demonstrates its ability to efficiently synthesize a wide range of programs, manipulating integers, lists, and trees. Moreover, we show that Escher outperforms a state-of-the-art SAT-based synthesis tool from the literature.
UR - http://www.scopus.com/inward/record.url?scp=84881119095&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84881119095&partnerID=8YFLogxK
U2 - 10.1007/978-3-642-39799-8_67
DO - 10.1007/978-3-642-39799-8_67
M3 - Conference contribution
AN - SCOPUS:84881119095
SN - 9783642397981
T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
SP - 934
EP - 950
BT - Computer Aided Verification - 25th International Conference, CAV 2013, Proceedings
T2 - 25th International Conference on Computer Aided Verification, CAV 2013
Y2 - 13 July 2013 through 19 July 2013
ER -