摘要
代码复用可以有效缩短软件开发的时间,而代码搜索是代码复用的主要途径。提出了一种基于程序切片和BiGRU的代码搜索方法,该方法通过构建源代码的程序依赖图,以程序依赖图中出度最大的节点作为兴趣点构建前向切片。将程序切片与源代码的其他相关特征一起构成代码特征。把代码特征和代码的功能描述通过嵌入模块输入到BiGRU网络中,结合注意力机制训练BiGRU模型。用户输入功能查询语句,模型返回向量值最接近的代码。为了验证该模型的可行性和有效性,从开源代码库下载了Java项目,构建了数据集并进行实验。实验结果表明,提出的基于程序切片和BiGRU的方法在代码搜索的准确率和相关性排名等方面都有所改进。
- 单位