Program Synthesis and Semantic Parsing with Learned Code Idioms

R. Shin, M. Allamanis, M. Brockschmidt, O. Polozov. NeurIPS 2019
[ArXiV] [Proceedings]  

TLDR: Use code idioms to improve program synthesis and semantic parsing.

Program synthesis of general-purpose source code from natural language specifications is challenging due to the need to reason about high-level patterns in the target program and low-level implementation details at the same time. In this work, we present PATOIS, a system that allows a neural program synthesizer to explicitly interleave high-level and low-level reasoning at every generation step. It accomplishes this by automatically mining common code idioms from a given corpus, incorporating them into the underlying language for neural synthesis, and training a tree-based neural synthesizer to use these idioms during code generation. We evaluate PATOIS on two complex semantic parsing datasets and show that using learned code idioms improves the synthesizer’s accuracy.