Code Completion with Neural Attention and Pointer Networks

Code Completion with Neural Attention and Pointer Networks

Jian Li, Yue Wang, Michael R. Lyu, Irwin King

Proceedings of the Twenty-Seventh International Joint Conference on Artificial Intelligence
Main track. Pages 4159-4165. https://doi.org/10.24963/ijcai.2018/578

Intelligent code completion has become an essential research task to accelerate modern software development. To facilitate effective code completion for dynamically-typed programming languages, we apply neural language models by learning from large codebases, and develop a tailored attention mechanism for code completion. However, standard neural language models even with attention mechanism cannot correctly predict the out-of-vocabulary (OoV) words that restrict the code completion performance. In this paper, inspired by the prevalence of locally repeated terms in program source code, and the recently proposed pointer copy mechanism, we propose a pointer mixture network for better predicting OoV words in code completion. Based on the context, the pointer mixture network learns to either generate a within-vocabulary word through an RNN component, or regenerate an OoV word from local context through a pointer component. Experiments on two benchmarked datasets demonstrate the effectiveness of our attention mechanism and pointer mixture network on the code completion task.
Keywords:
Natural Language Processing: NLP Applications and Tools
Machine Learning: Deep Learning
Multidisciplinary Topics and Applications: Knowledge-based Software Engineering