Skip to yearly menu bar Skip to main content

Contributed talk
Workshop: Meaning in Context: Pragmatic Communication in Humans and Machines

Efficient Pragmatic Program Synthesis with Informative Specifications

Saujas Vaduguru · Yewen Pu · Kevin Ellis


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 naive factored distribution approximates the exact joint distribution well when the examples are given pragmatically, and is compatible with a very simple neuro-symbolic synthesis algorithm.