Corpus ID: 17001419

Polynomial-Time Proactive Synthesis of Tree-to-String Functions from Examples

@article{Mayer2017PolynomialTimePS,
  title={Polynomial-Time Proactive Synthesis of Tree-to-String Functions from Examples},
  author={Mika{\"e}l Mayer and Jad Hamza and Viktor Kuncak},
  journal={ArXiv},
  year={2017},
  volume={abs/1701.04288}
}
Synthesis from examples enables non-expert users to generate programs by specifying examples of their behavior. A domain-specific form of such synthesis has been recently deployed in a widely used spreadsheet software product. In this paper we contribute to foundations of such techniques and present a complete algorithm for synthesis of a class of recursive functions defined by structural recursion over a given algebraic data type definition. The functions we consider map an algebraic data type… Expand
3 Citations
Proactive Synthesis of Recursive Tree-to-String Functions from Examples
TLDR
A complete algorithm for synthesis of a class of recursive functions defined by structural recursion over a given algebraic data type definition is presented and it is proved that it is possible to build test sets of cubic size for context-free languages. Expand
Proactive Synthesis of Recursive Tree-to-String Functions from Examples (Artifact)
This artifact, named Prosy, is an interactive command-line tool for synthesizing recursive tree-to-string functions (e.g. pretty-printers) from examples. Specifically, Prosy takes as input a ScalaExpand
Technical Report Column
TLDR
Low Bounds for Elimination via Weak Regularity, Optimal Resilience for Short-Circuit Noise in Formulas, and Collision-based Testers are Optimal for Uniformity and Closeness. Expand

References

SHOWING 1-10 OF 43 REFERENCES
Proactive Synthesis of Recursive Tree-to-String Functions from Examples
TLDR
A complete algorithm for synthesis of a class of recursive functions defined by structural recursion over a given algebraic data type definition is presented and it is proved that it is possible to build test sets of cubic size for context-free languages. Expand
Synthesizing data structure transformations from input-output examples
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 languageExpand
Test-driven synthesis
TLDR
A program synthesizer which can be parameterized by an arbitrary DSL that may contain conditionals and loops and therefore is able to synthesize programs in any domain and is compared to state-of-the-art DSL-specific synthesizers as well to the general purpose synthesizer Sketch. Expand
Recursive Program Synthesis
TLDR
This paper presents Escher, a generic and efficient algorithm that interacts with the user via input-output examples, and synthesizes recursive programs implementing intended behaviour, and outperforms a state-of-the-art SAT-based synthesis tool from the literature. Expand
Program synthesis from polymorphic refinement types
TLDR
The tool was able to synthesize more complex programs than those reported in prior work, as well as most of the benchmarks tackled by existing synthesizers, often starting from a more concise and intuitive user input. Expand
Synthesis from Examples
TLDR
This paper illustrates various algorithmic techniques and user interaction models by describing inductive synthesizers for varied applications including synthesis of tricky bitvector algorithms, spreadsheet macros for automating repetitive data manipulation tasks, ruler/compass based geometry constructions, new algebra problems, sequences for mathematical intellisense, and grading of programming problems. Expand
Streaming Tree Transducers
TLDR
This work introduces streaming tree transducers as an analyzable, executable, and expressive model for transforming unranked ordered trees (and hedges) in a single pass and proves that the expressiveness of the model coincides with transductions definable using monadic second-order logic (MSO). Expand
Synthesizing Number Transformations from Input-Output Examples
TLDR
A framework that can learn number transformations from very few input-output examples is presented, and an inductive synthesis algorithm for manipulating data types that have numbers as a constituent sub-type such as date, unit, and time is obtained. Expand
Expressiveness of streaming string transducers
TLDR
This work focuses on streaming transducers processing strings over finite alphabets, given the existence of a robust and well-studied class of ``regular'' transductions for this case, and finds that the expressiveness of streaming string transducers coincides exactly with this class of regular transduction. Expand
FlashMeta: a framework for inductive program synthesis
TLDR
The FlashMeta framework implements a novel program synthesis methodology, allowing synthesizer developers to generate an efficient synthesizer from the mere DSL definition (if properties of the DSL operators have been modeled), and found that 10+ existing industrial-quality mass-market applications based on PBE can be cast as instances of D4. Expand
...
1
2
3
4
5
...