Abstract Syntax Tree for Programming Language Understanding and Representation: How Far Are We?

Weisong Sun, Chunrong Fang, Yun Miao, Yudu You, Mengzhe Yuan +6 more
12/1/2023
cs.SEcs.AIcs.CL

No official code found. Best implementation: wssun/AST4PLU (9 stars, MIT, last commit 2025-04-16).

Abstract

Programming language understanding and representation (a.k.a code representation learning) has always been a hot and challenging task in software engineering. It aims to apply deep learning techniques to produce numerical representations of the source code features while preserving its semantics. These representations can be used for facilitating subsequent code-related tasks. The abstract syntax tree (AST), a fundamental code feature, illustrates the syntactic information of the source code and has been widely used in code representation learning. However, there is still a lack of systematic and quantitative evaluation of how well AST-based code representation facilitates subsequent code-related tasks. In this paper, we first conduct a comprehensive empirical study to explore the effectiveness of the AST-based code representation in facilitating follow-up code-related tasks. To do so, we compare the performance of models trained with code token sequence (Token for short) based code representation and AST-based code representation on three popular types of code-related tasks. Surprisingly, the overall quantitative statistical results demonstrate that models trained with AST-based code representation consistently perform worse across all three tasks compared to models trained with Token-based code representation. Our further quantitative analysis reveals that models trained with AST-based code representation outperform models trained with Token-based code representation in certain subsets of samples across all three tasks. We also conduct comprehensive experiments to evaluate and reveal the impact of the choice of AST parsing/preprocessing/encoding methods on AST-based code representation and subsequent code-related tasks. Our study provides future researchers with detailed guidance on how to select solutions at each stage to fully exploit AST.

View on arXivView PDF

Code Implementations(1)

wssun/AST4PLUCommunity100%
MIT

Abstract Syntax Tree for Programming Language Understanding and Representation: How Far Are We?

93C, C++Nov 23, 20231 years agoMIT

Similar Papers

Cite this paper

@article{sun2023abstract,
  title  = {Abstract Syntax Tree for Programming Language Understanding and Representation: How Far Are We?},
  author = {Weisong Sun and Chunrong Fang and Yun Miao and Yudu You and Mengzhe Yuan and Yuchen Chen and Quanjun Zhang and An Guo and Xiang Chen and Yang Liu and Zhenyu Chen},
  year   = {2023},
  eprint = {2312.00413},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2312.00413v1}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2312.00413.svg)](https://codeofpaper.com/paper/2312.00413)

Discussion