Efficient Pragmatic Program Synthesis with Informative Specifications

04/05/2022
by   Saujas Vaduguru, et al.
0

Providing examples is one of the most common way for end-users to interact with program synthesizers. However, program synthesis systems assume that examples consistent with the program are chosen at random, and do not exploit the fact that users choose examples pragmatically. Prior work modeled program synthesis as pragmatic communication, but required an inefficient enumeration of the entire program space. In this paper, we show that it is possible to build a program synthesizer that is both pragmatic and efficient by approximating the joint distribution of programs with a product of independent factors, and performing pragmatic inference on each factor separately. This factored distribution approximates the exact joint distribution well when the examples are given pragmatically, and is compatible with a basic neuro-symbolic program synthesis algorithm. Surprisingly, we find that the synthesizer assuming a factored approximation performs better than a synthesizer assuming an exact joint distribution when evaluated on natural human inputs. This suggests that humans may be assuming a factored distribution while communicating programs.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
07/09/2020

Program Synthesis with Pragmatic Communication

Program synthesis techniques construct or infer programs from user-provi...
research
06/19/2020

Neural Program Synthesis with a Differentiable Fixer

We present a new program synthesis approach that combines an encoder-dec...
research
09/01/2023

Amortizing Pragmatic Program Synthesis with Rankings

In program synthesis, an intelligent system takes in a set of user-gener...
research
06/22/2021

SynGuar: Guaranteeing Generalization in Programming by Example

Programming by Example (PBE) is a program synthesis paradigm in which th...
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
04/21/2023

Inductive Program Synthesis via Iterative Forward-Backward Abstract Interpretation

A key challenge in example-based program synthesis is the gigantic searc...
research
02/17/2019

Learning to Infer Program Sketches

Our goal is to build systems which write code automatically from the kin...

Please sign up or login with your details

Forgot password? Click here to reset