国内刊号:11-2560/TP
国际刊号:1000-9825
发布日期:
作者:徐杨,陈晓杰,汤德佑,黄翰
单位:徐杨,华南理工大学 软件学院, 广东 广州 51000611,陈晓杰,华南理工大学 软件学院, 广东 广州 51000602,汤德佑,华南理工大学 软件学院, 广东 广州 51000603,黄翰,华南理工大学 软件学院, 广东 广州 51000604
关键词:代码搜索;控制流图;数据依赖图;函数功能多重图
基金:广东省自然科学基金面上项目(2020A1515010696, 2022A1515011491); 国家自然科学基金面上项目(61876207, 62276103); 中央高校面上项目(2020ZYGXZR014); 广东省财税大数据重点实验室开放基金(2019B121203012)
如何提高异构的自然语言查询输入和高度结构化程序语言源代码的匹配准确度, 是代码搜索的一个基本问题. 代码特征的准确提取是提高匹配准确度的关键之一. 代码语句表达的语义不仅与其本身有关, 还与其所处的上下文相关. 代码的结构模型为理解代码功能提供了丰富的上下文信息. 提出一个基于函数功能多重图嵌入的代码搜索方法. 在所提方法中, 使用早期融合的策略, 将代码语句的数据依赖关系融合到控制流图中, 构建函数功能多重图来表示代码. 该多重图通过数据依赖关系显式表达控制流图中缺乏的非直接前驱后继节点的依赖关系, 增强语句节点的上下文信息. 同时, 针对多重图的边的异质性, 采用关系图卷积网络方法从函数多重图中提取代码的特征. 在公开数据集的实验表明, 相比现有基于代码文本和结构模型的方法, 所提方法的MRR提高5%以上. 通过消融实验也表明控制流图较数据依赖图在搜索准确度上贡献较大.
来源:2024年第8期
《软件学报》期刊编辑部