|
摘要: 代码分类是程序理解和自动编码中的一个困难问题。由于程序中的模糊语法和复杂语义,大多数现有研究使用基于抽象语法树(AST)和图神经网络(GNN)的技术来创建用于代码分类的代码表示。这些技术利用了代码的结构和语义信息,但它们只考虑了成对的关联,忽略了AST中同一字段或称为属性的节点之间已经存在的高阶数据相关性,这可能导致代码结构信息的丢失。另一方面,虽然一般的超图可以编码高阶数据相关性,但它是同质且无向的,这将导致在建模AST时缺乏语义和结构信息,例如节点类型、边类型以及子节点和父节点之间的方向。在本研究中,我们提出了一种异质有向超图(HDHG)来表示AST,以及一种异质有向超图神经网络(HDHGN)来处理用于代码分类的图形。我们的方法提高了代码理解能力,并且可以表示超出成对交互的高阶数据相关性。我们在Python和Java程序的公共数据集上评估了我们的异质有向超图神经网络(HDHGN)。我们的方法优于先前基于AST和GNN的方法,这证明了我们模型的能力。 更新时间: 2025-09-18 12:19:01 领域: cs.SE,cs.AI,cs.LG
|