Ain't Nobody Got Time For Coding: Structure-Aware Program Synthesis From Natural Language
arXiv:1810.09717
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 trained on abstract syntax trees, combined with a pretrained word embedding and a bi-directional multi-layer LSTM for processing of word sequences. The decoder features a doubly-recurrent LSTM, for which we propose novel signal propagation schemes 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 92% of cases. In contrast to other methods, it does not require post-processing of the resulting programs, and uses a fixed-dimensional latent representation as the only interface between the NL analyzer and the source code generator.
References in corpus (8)
- Adam: A Method for Stochastic Optimization
- Efficient Estimation of Word Representations in Vector Space
- End-To-End Memory Networks
- Layer Normalization
- DeepCoder: Learning to Write Programs
- A Syntactic Neural Model for General-Purpose Code Generation
- Latent Predictor Networks for Code Generation
- Neural Program Search: Solving Programming Tasks from Description and Examples