Ain't Nobody Got Time for Coding: Structure-Aware Program Synthesis from Natural Language
Authors: Jakub Bednarek, Karol Piaskowski, Krzysztof Krawiec
Keywords: Program synthesis, tree2tree autoencoders, soft attention, doubly-recurrent neural networks, LSTM, nlp2tree
TL;DR: We generate source code based on short descriptions in natural language, using deep neural networks.
Abstract: Program synthesis from natural language (NL) is practical for humans and, once technically feasible, would significantly facilitate software development and revolutionize end-user programming. We present SAPS, an end-to-end neural network capable of mapping relatively complex, multi-sentence NL specifications to snippets of executable code. The proposed architecture relies exclusively on neural components, and is built upon a tree2tree autoencoder trained on abstract syntax trees, combined with a pretrained word embedding and a bi-directional multi-layer LSTM for NL processing. The decoder features a doubly-recurrent LSTM with a novel signal propagation scheme and soft attention mechanism. When applied to a large dataset of problems proposed in a previous study, SAPS performs on par with or better than the method proposed there, producing correct programs in over 90% of cases. In contrast to other methods, it does not involve any non-neural components to post-process the resulting programs, and uses a fixed-dimensional latent representation as the only link between the NL analyzer and source code generator.