SEJun 21, 2021

On the Impact of Multiple Source Code Representations on Software Engineering Tasks -- An Empirical Study

arXiv:2106.10918v55 citations
Originality Synthesis-oriented
AI Analysis

This addresses the problem of optimizing code representation for software engineering researchers and practitioners, but it is incremental as it builds on existing AST-based methods by adding CFG and PDG.

The paper tackles the problem of efficiently representing source code for software engineering tasks by empirically studying the impact of using multiple representations (AST, CFG, and PDG) instead of just AST, resulting in performance increases of 11% (F1), 15.7% (Accuracy), and 9.3% (F1) on method naming, program classification, and clone detection tasks, respectively, while also discussing timing overheads.

Efficiently representing source code is crucial for various software engineering tasks such as code classification and clone detection. Existing approaches primarily use Abstract Syntax Tree (AST), and only a few focus on semantic graphs such as Control Flow Graph (CFG) and Program Dependency Graph (PDG), which contain information about source code that AST does not. Even though some works tried to utilize multiple representations, they do not provide any insights about the costs and benefits of using multiple representations. The primary goal of this paper is to discuss the implications of utilizing multiple code representations, specifically AST, CFG, and PDG. We modify an AST path-based approach to accept multiple representations as input to an attention-based model. We do this to measure the impact of additional representations (such as CFG and PDG) over AST. We evaluate our approach on three tasks: Method Naming, Program Classification, and Clone Detection. Our approach increases the performance on these tasks by 11% (F1), 15.7% (Accuracy), and 9.3% (F1), respectively, over the baseline. In addition to the effect on performance, we discuss timing overheads incurred with multiple representations. We envision this work providing researchers with a lens to evaluate combinations of code representations for various tasks.

Code Implementations3 repos
Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes