CAST:使用抽象语法树的层次分割和重构提高代码摘要
本文提出了一种基于分块的抽象语法树分裂方法(BASTS),利用 AST 的丰富树形语法结构来改进代码摘要,将其分为块并为每个代码块生成分裂 AST,利用基于树的 LSTM 和 Transformer 生成高质量的代码摘要,实验证明该方法在各种评估指标上显著优于现有方法。
Mar, 2021
AST-MHSA 是一个使用多头注意力机制从抽象语法树中提取重要语义信息的模型,它包括编码器和解码器两个主要组件,编码器将代码的抽象语法树作为输入生成隐藏状态序列,解码器以这些隐藏状态为输入生成代码的自然语言摘要。
Aug, 2023
在软件工程领域,编程语言理解与表示(即代码表示学习)一直是一个备受关注和具有挑战性的任务,其旨在应用深度学习技术生成源代码特征的数值表示同时保持其语义,这些表示可用于促进后续与代码相关的任务。然而,AST(抽象语法树)作为一种基本的代码特征,在代码表示学习中广泛应用,但目前缺乏对 AST-based 代码表示如何促进后续代码相关任务的系统和定量评估。本文通过详细的实证研究首次探索了 AST-based 代码表示在促进后续代码相关任务方面的有效性,并比较了基于代码标记序列和基于 AST 的代码表示方法在三种常见类型的代码相关任务上的性能。令人惊讶的是,整体定量统计结果表明,与基于代码标记的代码表示方案相比,基于 AST 的代码表示方法在所有三个任务中的表现均较差。进一步的定量分析显示,基于 AST 的代码表示方法在所有三个任务的某些子样本中优于基于代码标记的代码表示方法。我们还进行了全面的实验,评估和揭示了 AST 解析 / 预处理 / 编码方法的选择对基于 AST 的代码表示和后续代码相关任务的影响。本研究为未来的研究人员提供了关于如何选择每个阶段的解决方案以充分利用 AST 的详细指导。
Dec, 2023
该研究探讨了使用神经机器翻译模型进行源代码自动生成文档的机器翻译任务,并阐述了抽象语法树在源码的机器学习研究中的重要性和 Tree-LSTM 方法的局限性,并提出了一种新方法 Multi-way Tree-LSTM 来应对此问题,对比现有技术取得更好的结果。
Jun, 2019
本研究旨在提出一种基于多尺度、多模态方法和 Transformer 的源代码摘要生成模型 (M2TS),该模型使用多尺度 AST 特征提取方法、代码词法特征和跨模态融合方法,以更全面准确地抓取 AST 的结构特征,同时融合语法和上下文语义信息,从而生成源代码的高质量摘要并在实验证明了其优于当前最新研究。
Mar, 2022
介绍了针对类似代码生成和语义解析等需要将非结构化(或部分结构化)输入映射到格式化可执行输出的抽象语法网络建模框架,并使用一个具有动态确定模块化结构的解码器构建输出,具有与输出树结构相一致的特性,在 Hearthstone 数据集上获取了 79.2 BLEU 和 22.7% 的精确匹配度,相比之前最先进的值提高了 12.1 和 16.6 个百分点,在 Atis、Jobs 和 Geo 语义解析数据集上的表现也很有竞争力,并且无需进行任何任务特定的工程。
Apr, 2017
本文提出了一种使用图神经网络的自动代码注释生成方法,该方法使用了源代码序列和图结构信息作为输入,使用 210 万个 Java 方法 - 注释对进行评估,并表明比四种基线技术均有所改进。
Apr, 2020
通过使用稀疏注意力机制的神经网络,我们介绍了一种名为 SACC 的方法用于代码分类任务,其中把源代码分为子树序列,并使用递归神经网络编码以及 Transformer 模型进行分类,证明了其在代码分类任务中的有效性和效率。
Nov, 2023
通过同时学习源代码和抽象语法树的结构信息,本篇研究提出了一种只使用与语言无关的功能和直接从抽象语法树中计算得出的功能的新机器学习模型,该模型在单语言和多语言代码总结方面均取得了最新成果。
Mar, 2021
使用 AST(抽象语法树)的 AST-T5 模型在代码生成、转译和理解任务中表现出色,保留了代码结构,对重建各种代码结构具有强大的能力,并在各种代码相关任务中优于类似尺寸的其他大型语言模型。
Jan, 2024