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

要約

プログラミング言語の理解と表現(コード表現学習)は、ソフトウェア工学において常に注目され、挑戦的な課題となっている。これは、ディープラーニング技術を適用して、ソースコードのセマンティクスを保持しながら、ソースコードの特徴の数値表現を生成することを目的としている。これらの表現は、後続のコード関連作業を容易にするために使用することができる。基本的なコード特徴である抽象構文木(AST)は、ソースコードの構文情報を示すものであり、コード表現学習に広く用いられてきた。しかし、ASTに基づくコード表現が、その後のコード関連作業をどの程度促進するかについて、体系的かつ定量的な評価はまだなされていない。本論文では、まず、ASTベースのコード表現が、後続のコード関連タスクを促進する有効性を探るために、包括的な実証研究を行う。そのために、コードトークン列(略してトークン)ベースのコード表現とASTベースのコード表現で学習したモデルの性能を、よく使われる3種類のコード関連タスクで比較する。驚くべきことに、全体的な定量的統計結果は、ASTベースのコード表現で学習したモデルは、トークン・ベースのコード表現で学習したモデルと比較して、3つのタスクすべてにおいて一貫して性能が低いことを示している。さらに定量的な分析を行った結果、ASTベースのコード表現で学習したモデルは、3つのタスクすべてにおいて、特定のサンプルのサブセットにおいてトークン・ベースのコード表現で学習したモデルを上回ることが明らかになった。また、AST解析/前処理/符号化手法の選択がASTベースのコード表現とその後のコード関連タスクに与える影響を評価し、明らかにするために包括的な実験を行った。我々の研究は、将来の研究者に、ASTを十分に活用するために各段階でどのようにソリューションを選択するかについての詳細なガイダンスを提供する。

要約(オリジナル)

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.

arxiv情報

著者 Weisong Sun,Chunrong Fang,Yun Miao,Yudu You,Mengzhe Yuan,Yuchen Chen,Quanjun Zhang,An Guo,Xiang Chen,Yang Liu,Zhenyu Chen
発行日 2023-12-01 08:37:27+00:00
arxivサイト arxiv_id(pdf)

提供元, 利用サービス

arxiv.jp, DeepL

カテゴリー: 68-04, 68T30, cs.AI, cs.CL, cs.PL, cs.SE, I.2.4 パーマリンク