May, 2022

使用代码层次结构表示程序的学习

TL;DR本文针对现有技术在软件工程任务中依然存在两个问题:长期依赖和不同的代码组件被平等地处理。为了解决这些问题,本文提出了一种代表代码的层次结构(“Code Hierarchy”)和一种网络架构(“ECHELON”),该架构将异构图变换网络和基于树的卷积神经网络的优点相结合用于学习富含代码依赖信息的抽象语法树。同时,本文提出了一种新的预训练目标 “Missing Subtree Prediction” 来补充 “Code Hierarchy”。评估结果表明,我们的方法在任何代码完成、代码分类和代码克隆检测方面明显优于其他基线。