-
题名基于深度学习的函数名一致性检查及推荐方法
- 1
-
-
作者
郑炜
唐辉
陈翔
张永杰
-
机构
西北工业大学软件学院
南通大学信息科学技术学院
空天地海一体化大数据应用技术国家工程实验室(西北工业大学)
大数据存储与管理工业和信息化部重点实验室(西北工业大学)
-
出处
《软件学报》
EI
CSCD
北大核心
2024年第10期4604-4622,共19页
-
基金
国家重点研发计划(2020YFC0833105Z1)
国家自然科学基金(62141208)。
-
文摘
函数是大多数传统编程语言中聚合行为的最小命名单元,函数名的可读性对于程序员理解程序功能及不同模块之间的交互有着至关重要的作用,低质量的函数名会使开发人员感到困惑,增加代码中的坏味道,进而引发由API误用而导致的软件缺陷.为此,提出一种基于深度学习的函数名一致性检查及推荐方法,该方法被命名为DMName.首先,对于给定的目标函数源码,分别构建其内部上下文、交互上下文、兄弟上下文和封闭上下文,合并后得到上下文信息标记序列,然后利用FastText词嵌入技术将标记序列转换为上下文表示向量序列,输入到seq2seq模型编码器中,引入Copy机制和Coverage机制分别解决OOV问题和重复解码问题,输出目标函数名预测结果的向量序列,借助双通道CNN分类器进行函数名的一致性判断,若不一致则根据向量空间相似度匹配直接映射获得推荐的函数名.实验结果表明,DMName方法在函数名一致性检查任务和函数名推荐任务中的F1值分别达到82.65%和73.31%,比目前最优的DeepName方法分别提高2.01%和2.96%.最后,在GitHub大规模开源项目lancia中对DMName方法进行验证,挖掘得到16个函数名不一致问题并进行合理的名称推荐,进一步证实DMName方法的有效性.
-
关键词
函数名
一致性检查
名称推荐
深度学习
seq2seq模型
-
Keywords
function name
consistency check
name recommendation
deep learning
seq2seq model
-
分类号
TP311
[自动化与计算机技术—计算机软件与理论]
-