A Grammar-Based Structural CNN Decoder for Code Generation

Authors

  • Zeyu Sun Peking University
  • Qihao Zhu Peking University
  • Lili Mou AdeptMind Inc.
  • Yingfei Xiong Peking University
  • Ge Li Peking University
  • Lu Zhang Peking University

DOI:

https://doi.org/10.1609/aaai.v33i01.33017055

Abstract

Code generation maps a program description to executable source code in a programming language. Existing approaches mainly rely on a recurrent neural network (RNN) as the decoder. However, we find that a program contains significantly more tokens than a natural language sentence, and thus it may be inappropriate for RNN to capture such a long sequence. In this paper, we propose a grammar-based structural convolutional neural network (CNN) for code generation. Our model generates a program by predicting the grammar rules of the programming language; we design several CNN modules, including the tree-based convolution and pre-order convolution, whose information is further aggregated by dedicated attentive pooling layers. Experimental results on the HearthStone benchmark dataset show that our CNN code generator significantly outperforms the previous state-of-the-art method by 5 percentage points; additional experiments on several semantic parsing tasks demonstrate the robustness of our model. We also conduct in-depth ablation test to better understand each component of our model.

Downloads

Published

2019-07-17

How to Cite

Sun, Z., Zhu, Q., Mou, L., Xiong, Y., Li, G., & Zhang, L. (2019). A Grammar-Based Structural CNN Decoder for Code Generation. Proceedings of the AAAI Conference on Artificial Intelligence, 33(01), 7055-7062. https://doi.org/10.1609/aaai.v33i01.33017055

Issue

Section

AAAI Technical Track: Natural Language Processing