跳到正文
OpenReview · Representation learning· Jian Zhang; Xu Wang; Hongyu Zhang; Hailong Sun; Kaixuan Wang; Xudong Liu·· 2019-01-01精选AI 评分77

一种基于抽象语法树的新型源代码神经表示方法

A novel neural source code representation based on abstract syntax tree

AI 导读

基于摘要分析。本文研究程序分析中的源代码片段表示问题,提出基于抽象语法树(AST)的 ASTNN,将大型 AST 拆分为较小的语句树序列,再结合树编码与序列建模生成代码片段向量,旨在保留词法和语法信息,同时缓解直接建模整棵 AST 时的长程依赖问题。 核心机制分为两个阶段:先将各语句树编码为向量,捕捉语句的词法与语法知识;再以语句向量序列为输入,使用双向 RNN 建模语句间的顺序关联,得到代码片段表示。相较于把程序当作自然语言文本的信息检索式方法,其表示显式利用 AST 结构;相较于处理完整 AST 的神经模型,其主要区别是采用语句级拆分与后续序列聚合。摘要未提供树编码器的具体结构、损失函数及训练细节。 作者在源代码分类和代码克隆检测两项程序理解任务上进行评估,并报告 ASTNN 优于所比较的当时先进方法。摘要未给出数据集、划分方式、对照方法名称或具体指标,因此尚不能判断优势幅度及跨项目泛化能力;实验协议、消融及统计信息尚未验证。 本文的主要研究对象是具有明确语法树结构的源代码,并非 EEG 或 BCI。材料未提供神经信号中的对应结构或迁移验证,不能据此推断其对 BCI 任务有效。复现原方法需进一步核对 AST 解析与语句树切分规则、编码实现、数据预处理及任务评估协议。

阅读价值

值得阅读的是 ASTNN 将大型 AST 拆解为语句树、再建模语句序列的分层表示机制;作者报告其在源代码分类与代码克隆检测中优于所比较方法,但具体评估协议和优势幅度尚未验证。

来源:OpenReview · Representation learning · openreview.net