arrow
返回

Deep Code Search with Naming-Agnostic Contrastive Multi-View Learning

delete2025-07-09
delete0
PRE
AI
J
Jiadong Feng
李
李薇 (Wei Li)
S
Suhuang Wu
Z
Zhao Wei
Y
Yong Xu
J
Juhong Wang
H
Hui Li
DOI:10.1145/3737878delete
delete原文链接
delete原文求助
delete分享
delete收藏
摘要

摘要

En 中文
软件开发是一项重复性任务,因为开发者通常会重用或从现有实现中获得灵感。代码搜索是指根据开发者以查询形式表达意图,从代码库中检索相关代码片段,在软件开发过程中变得越来越重要。由于深度学习在各个应用中的成功,大量基于深度学习的代码搜索方法涌现并取得了有前景的结果。然而,开发者可能不遵循相同的命名约定,同一个变量在不同实现中可能有不同的变量名,这对依赖显式变量对应关系来理解源代码的深度学习代码搜索方法带来了挑战。为了克服这一挑战,我们提出了一种基于对比多视图代码表示学习的命名无关代码搜索(NACS)方法。NACS从抽象语法树(AST,源代码抽象语法结构的表示)中剥离与变量名绑定的信息,专注于仅从AST结构中捕获内在属性。我们使用语义级和语法级增强技术来准备现实合理的训练数据,并采用对比学习为NACS设计了一个图视图建模组件,以增强对代码片段的理解。我们进一步在路径视图中对AST进行建模,通过多视图学习来加强图视图建模组件。广泛的实验表明,NACS相比基线方法提供了卓越的代码搜索性能,并且NACS可以适应帮助现有代码搜索方法克服不同命名约定的影响。我们的实现可从https://github.com/KDEGroup/NACS获取。
Keyword:
Code Search
Deep Learning
Variable Names
Abstract Syntax Tree
Contrastive Learning

期刊

ACM Transactions on Knowledge Discovery from Data 封面图
ACM Transactions on Knowledge Discovery from Data
IF:
4.8
论文数:
1.3K
被引数:
4.4K

机构

暂无机构信息
引用论文

引用论文