vix.ing · top · new · best · stats · spec

Code Representation Learning with Prüfer Sequences

2021/11/14 by Tenzin Jinpa, Yong Gao, Jinpa, Tenzin +1
Computer Science · #Artificial Intelligence (cs.AI) #FOS: Computer and information sciences #Software Engineering Research #Software Testing and Debugging Techniques #Topic Modeling

paper · pdf · doi:10.48550/arxiv.2111.07263

openalex publication_date 2021/11/14 · openalex created_date 2025/10/10 · openalex updated_date 2026/07/28

Abstract

An effective and efficient encoding of the source code of a computer program is critical to the success of sequence-to-sequence deep neural network models for tasks in computer program comprehension, such as automated code summarization and documentation. A significant challenge is to find a sequential representation that captures the structural/syntactic information in a computer program and facilitates the training of the learning models. In this paper, we propose to use the Prüfer sequence of the Abstract Syntax Tree (AST) of a computer program to design a sequential representation scheme that preserves the structural information in an AST. Our representation makes it possible to develop deep-learning models in which signals carried by lexical tokens in the training examples can be exploited automatically and selectively based on their syntactic role and importance. Unlike other recently-proposed approaches, our representation is concise and lossless in terms of the structural information of the AST. Empirical studies on real-world benchmark datasets, using a sequence-to-sequence learning model we designed for code summarization, show that our Prüfer-sequence-based representation is indeed highly effective and efficient, outperforming significantly all the recently-proposed deep-learning models we used as the baseline models.

Citations

Related