Convolutional Neural Networks over Tree Structures for Programming Language Processing
This work addresses the challenge of adapting NLP models to handle the explicit structural complexities in programs for software engineering and AI applications, representing a domain-specific advancement.
The paper tackled the problem of processing programming languages by proposing a tree-based convolutional neural network (TBCNN) that captures structural information from abstract syntax trees, achieving improved performance in program classification and pattern detection tasks compared to baseline methods.
Programming language processing (similar to natural language processing) is a hot research topic in the field of software engineering; it has also aroused growing interest in the artificial intelligence community. However, different from a natural language sentence, a program contains rich, explicit, and complicated structural information. Hence, traditional NLP models may be inappropriate for programs. In this paper, we propose a novel tree-based convolutional neural network (TBCNN) for programming language processing, in which a convolution kernel is designed over programs' abstract syntax trees to capture structural information. TBCNN is a generic architecture for programming language processing; our experiments show its effectiveness in two different program analysis tasks: classifying programs according to functionality, and detecting code snippets of certain patterns. TBCNN outperforms baseline methods, including several neural models for NLP.