Scaling Neural Program Synthesis with Distribution-based Search
  We consider the problem of automatically constructing computer programs from
input-output examples. We investigate how to augment probabilistic and neural
program synthesis methods with new search algorithms, proposing a framework
called distribution-based search. Within this framework, we introduce two new
search algorithms: Heap Search, an enumerative method, and SQRT Sampling, a
probabilistic method. We prove certain optimality guarantees for both methods,
show how they integrate with probabilistic and neural techniques, and
demonstrate how they can operate at scale across parallel compute environments.
Collectively these findings offer theoretical and applied studies of search
algorithms for program synthesis that integrate with recent developments in
machine-learned program synthesizers.
