  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.
