国内刊号:31-1289/TP
国际刊号:1000-3428
发布日期:
作者:孙义康, 高建华
单位:上海师范大学计算机科学与技术系, 上海 200234
关键词:死代码,深度学习,文本信息,代码度量,特征提取
基金:国家自然科学基金(61672355)
死代码是一种不良代码异味, 会导致软件质量逐渐衰退。传统的死代码检测方法主要依赖于静态分析技术、代码结构的度量以及启发式规则, 这些方法在开发者之间存在高度差异, 且对源代码文本信息关注较少, 忽略代码在实际执行过程中的情况, 存在较大的局限性。针对以上问题, 设计一种新型死代码检测方法, 并采用基于卷积神经网络和长短期记忆相结合的技术, 其主要思路是将代码文本信息和代码度量信息相结合, 提高死代码检测的准确性。首先使用DUM-Tool等工具并结合人工以确定应用程序中的死代码实例进行死代码标记, 以深度优先遍历抽象语法树获取源代码的文本信息, 将标签值与文本信息相匹配, 再使用CK代码度量提取工具获取源代码的代码度量信息。然后通过Word2Vec将文本信息转化为词向量, 使用卷积神经网络提取代码度量信息的特征, 将两者拼接得到死代码检测的数据集。最后使用长短期记忆网络对数据集进行训练, 再通过Sigmoid函数进行分类。实验结果表明, 将代码文本信息和度量信息相结合可以有效实现死代码的检测, 与传统的检测方法相比, 平均F1值最高提升12.58百分点。
来源:2025年第2期
《计算机工程》期刊编辑部