Modeling Programs Hierarchically with Stack-Augmented LSTM (2002.04516v1)
Abstract: Programming LLMing has attracted extensive attention in recent years, and it plays an essential role in program processing fields. Statistical LLMs, which are initially designed for natural languages, have been generally used for modeling programming languages. However, different from natural languages, programming languages contain explicit and hierarchical structure that is hard to learn by traditional statistical LLMs. To address this challenge, we propose a novel Stack-Augmented LSTM neural network for programming LLMing. Adding a stack memory component into the LSTM network enables our model to capture the hierarchical information of programs through the PUSH and POP operations, which further allows our model capturing the long-term dependency in the programs. We evaluate the proposed model on three program analysis tasks, i.e., code completion, program classification, and code summarization. Evaluation results show that our proposed model outperforms baseline models in all the three tasks, indicating that by capturing the structural information of programs with a stack, our proposed model can represent programs more precisely.