化树为图:基于简化AST驱动的图卷积网络的自动代码审查
软件工程
2022-02-17 v1
摘要
自动代码审查(ACR)能够缓解人工检查的成本,是软件工程中不可或缺且至关重要的任务。针对ACR,已有工作将抽象语法树(AST)序列化。然而,利用序列编码方法理解整棵AST是一项艰巨任务,主要因为AST中某些冗余节点阻碍了节点信息的传递。更不必说序列化表示不足以把握AST中树结构的信息。本文中,我们首先提出一个用于ACR任务的大规模Apache自动代码审查(AACR)数据集,因为该任务目前仍无公开可用数据集。该数据集的发布将推动该领域的研究。在此基础上,我们提出一种新颖的基于简化AST的图卷积网络(SimAST-GCN)来处理ACR任务。具体而言,为提高节点信息传播效率,我们首先通过删除不含连接属性的冗余节点来简化代码的AST,从而得到简化AST。然后,我们基于简化AST为每段代码构建关系图,以恰当体现树结构中代码碎片间的关系于图中。随后,鉴于图结构的优势,我们探索了一种遵循注意力机制的图卷积网络架构,以利用代码碎片的关键含义来导出代码表示。最后,我们在原始代码与修订代码的表示间采用简单而有效的减法操作,使修订差异能被更好地学习以判定ACR结果。在AACR数据集上的实验结果表明,我们所提模型优于当前最优方法。
引用
@article{arxiv.2202.07946,
title = {Turn Tree into Graph: Automatic Code Review via Simplified AST Driven Graph Convolutional Network},
author = {B. Wu and B. Liang and X. Zhang},
journal= {arXiv preprint arXiv:2202.07946},
year = {2022}
}
备注
15 pages