CC2Vec:代码变更的分布式表示
软件工程
2020-03-13 v1
摘要
现有关于软件补丁的工作常使用针对单一任务的特征。这些工作往往依赖人工识别的特征,且需耗费人力为每个任务识别这些特征。本工作中,我们提出 CC2Vec,一种由代码变更所附日志消息(表征代码变更的语义意图)引导学习代码变更表示的神经网络模型。CC2Vec 借助注意力机制对代码变更的层次结构建模,并使用多种比较函数识别被删除代码与新增代码之间的差异。为评估 CC2Vec 能否产生对软件补丁多项任务通用且有用的代码变更分布式表示,我们将 CC2Vec 生成的向量用于三项任务:日志消息生成、缺陷修复补丁识别,以及即时缺陷预测。在所有任务中,使用 CC2Vec 的模型均优于最先进的技术。
引用
@article{arxiv.2003.05620,
title = {CC2Vec: Distributed Representations of Code Changes},
author = {Thong Hoang and Hong Jin Kang and Julia Lawall and David Lo},
journal= {arXiv preprint arXiv:2003.05620},
year = {2020}
}