English

Program Synthesis with Pragmatic Communication

Artificial Intelligence 2020-10-22 v3 Software Engineering

Abstract

Program synthesis techniques construct or infer programs from user-provided specifications, such as input-output examples. Yet most specifications, especially those given by end-users, leave the synthesis problem radically ill-posed, because many programs may simultaneously satisfy the specification. Prior work resolves this ambiguity by using various inductive biases, such as a preference for simpler programs. This work introduces a new inductive bias derived by modeling the program synthesis task as rational communication, drawing insights from recursive reasoning models of pragmatics. Given a specification, we score a candidate program both on its consistency with the specification, and also whether a rational speaker would chose this particular specification to communicate that program. We develop efficient algorithms for such an approach when learning from input-output examples, and build a pragmatic program synthesizer over a simple grid-like layout domain. A user study finds that end-user participants communicate more effectively with the pragmatic program synthesizer over a non-pragmatic one.

Keywords

Cite

@article{arxiv.2007.05060,
  title  = {Program Synthesis with Pragmatic Communication},
  author = {Yewen Pu and Kevin Ellis and Marta Kryven and Josh Tenenbaum and Armando Solar-Lezama},
  journal= {arXiv preprint arXiv:2007.05060},
  year   = {2020}
}

Comments

The second author and the third author contributed equally to this work

R2 v1 2026-06-23T16:59:56.367Z