Program synthesis techniques offer significant new capabilities in searching for programs that satisfy high-level specifications. While synthesis has been thoroughly explored for input/output pair specifications (programming-by-example), this paper asks: what does program synthesis look like beyond examples? What actual issues in day-to-day development would stand to benefit the most from synthesis? How can a human-centric perspective inform the exploration of alternative specification languages for synthesis? I sketch a human-centric vision for program synthesis where programmers explore and learn languages and APIs aided by a synthesis tool.
@InProceedings{crichton:OASIcs.PLATEAU.2019.5, author = {Crichton, Will}, title = {{Human-Centric Program Synthesis}}, booktitle = {10th Workshop on Evaluation and Usability of Programming Languages and Tools (PLATEAU 2019)}, pages = {5:1--5:5}, series = {Open Access Series in Informatics (OASIcs)}, ISBN = {978-3-95977-135-1}, ISSN = {2190-6807}, year = {2020}, volume = {76}, editor = {Chasins, Sarah and Glassman, Elena L. and Sunshine, Joshua}, publisher = {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik}, address = {Dagstuhl, Germany}, URL = {https://drops.dagstuhl.de/entities/document/10.4230/OASIcs.PLATEAU.2019.5}, URN = {urn:nbn:de:0030-drops-119590}, doi = {10.4230/OASIcs.PLATEAU.2019.5}, annote = {Keywords: Program synthesis, programming by example, PL/HCI} }
Feedback for Dagstuhl Publishing