xASTNN:面向工业实践的改进代码表示
软件工程
2023-11-07 v3 人工智能
摘要
深度学习技术在软件工程中的应用日益普及。一个关键问题是为代码相关任务开发高质量且易用的源代码表示。研究界近年来取得了令人印象深刻的成果。然而,由于部署困难与性能瓶颈,这些方法中极少被应用于工业界。本文提出 xASTNN,一种基于极限抽象语法树(AST)的神经网络,用于源代码表示,旨在将该技术推向工业实践。所提出的 xASTNN 具有三方面优势。首先,xASTNN 完全基于广泛使用的 AST,不需要复杂的数据预处理,使其适用于多种编程语言与实际场景。其次,提出了三个紧密相关的设计以保证 xASTNN 的有效性,包括用于代码自然性的语句子树序列、用于语法信息的门控递归单元,以及用于序列信息的门控循环单元。第三,引入动态批处理算法以显著降低 xASTNN 的时间复杂度。采用代码分类与代码克隆检测两个代码理解下游任务进行评估。结果表明,我们的 xASTNN 在取得优于最优方法性能的同时快于基线。
引用
@article{arxiv.2303.07104,
title = {xASTNN: Improved Code Representations for Industrial Practice},
author = {Zhiwei Xu and Min Zhou and Xibin Zhao and Yang Chen and Xi Cheng and Hongyu Zhang},
journal= {arXiv preprint arXiv:2303.07104},
year = {2023}
}
备注
Accepted to ESEC/FSE 2023