Programming Not Only by Example

10/03/2017
by   Hila Peleg, et al.
0

In recent years, there has been tremendous progress in automated synthesis techniques that are able to automatically generate code based on some intent expressed by the programmer. A major challenge for the adoption of synthesis remains in having the programmer communicate their intent. When the expressed intent is coarse-grained (for example, restriction on the expected type of an expression), the synthesizer often produces a long list of results for the programmer to choose from, shifting the heavy-lifting to the user. An alternative approach, successfully used in end-user synthesis is programming by example (PBE), where the user leverages examples to interactively and iteratively refine the intent. However, using only examples is not expressive enough for programmers, who can observe the generated program and refine the intent by directly relating to parts of the generated program. We present a novel approach to interacting with a synthesizer using a granular interaction model. Our approach employs a rich interaction model where (i) the synthesizer decorates a candidate program with debug information that assists in understanding the program and identifying good or bad parts, and (ii) the user is allowed to provide feedback not only on the expected output of a program, but also on the underlying program itself. That is, when the user identifies a program as (partially) correct or incorrect, they can also explicitly indicate the good or bad parts, to allow the synthesizer to accept or discard parts of the program instead of discarding the program as a whole. We show the value of our approach in a controlled user study. Our study shows that participants have strong preference to using granular feedback instead of examples, and are able to provide granular feedback much faster.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
12/29/2019

Synthesizing Queries via Interactive Sketching

We propose a novel approach to program synthesis, focusing on synthesizi...
research
06/06/2023

Natural Language Commanding via Program Synthesis

We present Semantic Interpreter, a natural language-friendly AI system f...
research
10/04/2020

Optimal Neural Program Synthesis from Multimodal Specifications

Multimodal program synthesis, which leverages different types of user in...
research
07/08/2023

Multi-Intent Detection in User Provided Annotations for Programming by Examples Systems

In mapping enterprise applications, data mapping remains a fundamental p...
research
08/13/2023

The Usability of Pragmatic Communication in Regular Expression Synthesis

Programming-by-example (PBE) systems aim to alleviate the burden of prog...
research
07/14/2021

FAPR: Fast and Accurate Program Repair for Introductory Programming Courses

In introductory programming courses, it is challenging for instructors t...
research
05/27/2022

Learning to Find Proofs and Theorems by Learning to Refine Search Strategies

We propose a new approach to automated theorem proving and deductive pro...

Please sign up or login with your details

Forgot password? Click here to reset