Authors
John K Feser, Swarat Chaudhuri, Isil Dillig
Publication date
2015
Conference
Symposium on Programming Language Design and Implementation (PLDI)
Pages
229-239
Publisher
ACM
Description
We present a method for example-guided synthesis of functional programs over recursive data structures. Given a set of input-output examples, our method synthesizes a program in a functional language with higher-order combinators like map and fold. The synthesized program is guaranteed to be the simplest program in the language to fit the examples. Our approach combines three technical ideas: inductive generalization, deduction, and enumerative search. First, we generalize the input-output examples into hypotheses about the structure of the target program. For each hypothesis, we use deduction to infer new input/output examples for the missing subexpressions. This leads to a new subproblem where the goal is to synthesize expressions within each hypothesis. Since not every hypothesis can be realized into a program that fits the examples, we use a combination of best-first enumeration and deduction …
Total citations
20152016201720182019202020212022202320245303752474958474026
Scholar articles