License
When quoting this document, please refer to the following
DOI: 10.4230/DARTS.3.2.16
URN: urn:nbn:de:0030-drops-72970
URL: http://drops.dagstuhl.de/opus/volltexte/2017/7297/
Go back to Dagstuhl Artifacts Series


Mayer, MikaŽl ; Hamza, Jad ; Kuncak, Viktor

Proactive Synthesis of Recursive Tree-to-String Functions from Examples (Artifact)

pdf-format:
DARTS-3-2-16.pdf (0.4 MB)
artifact-format:
DARTS-3-2-16-artifact-930966950860a59c2783101e1fcfc59e.zip (6 MB)


Abstract

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 Scala file containing a hierarchy of abstract and case classes, and synthesizes the printing function after interacting with the user. Prosy first pro-actively generates a finite set of trees such that their string representations uniquely determine the function to synthesize. While asking the output for each example, Prosy prunes away questions when it can infer their answers from previous answers. In the companion paper, we prove that this pruning allows Prosy not to require that the user provides answers to the entire set of questions, which is of size O(n^3) where n is the size of the input file, but only to a reasonably small subset of size O(n). Furthermore, Prosy guides the interaction by providing suggestions whenever it can.

BibTeX - Entry

@Article{mayer_et_al:DARTS:2017:7297,
  author =	{Mika{\"e}l Mayer and Jad Hamza and Viktor Kuncak},
  title =	{{Proactive Synthesis of Recursive Tree-to-String Functions from Examples (Artifact)}},
  pages =	{16:1--16:2},
  journal =	{Dagstuhl Artifacts Series},
  ISSN =	{2509-8195},
  year =	{2017},
  volume =	{3},
  number =	{1},
  publisher =	{Schloss Dagstuhl--Leibniz-Zentrum fuer Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{http://drops.dagstuhl.de/opus/volltexte/2017/7297},
  URN =		{urn:nbn:de:0030-drops-72970},
  doi =		{10.4230/DARTS.3.2.16},
  annote =	{Keywords: programming by example, active learning, program synthesis}
}

Keywords: programming by example, active learning, program synthesis
Seminar: DARTS, Volume 3, Issue 2
Related Scholarly Article: http://dx.doi.org/10.4230/LIPIcs.ECOOP.2017.19
Issue Date: 2017
Date of publication: 14.06.2017


DROPS-Home | Fulltext Search | Imprint Published by LZI