A Neural Model for Generating Natural Language Summaries of Program Subroutines
源代码摘要--创建源代码行为的自然语言描述--是一个快速发展的研究课题,它应用于自动文档生成、程序理解和软件维护。传统的技术依赖于人工专家手动构建的算法和模板。最近,基于神经机器翻译的数据驱动方法在很大程度上超过了基于模板的系统。但几乎所有这些技术几乎完全依赖于具有良好内部文档的程序;没有明确的标识符名称,模型无法创建良好的摘要。在本文中,我们提出了一个神经模型,它将代码中的单词与AST中的代码结构相结合。与以前的方法不同,我们的模型将每个数据源作为单独的输入进行处理,这允许模型独立于代码中的文本来学习代码结构。这一过程有助于我们的方法在许多情况下提供连贯的摘要,即使在没有提供内部文件的情况下。我们评估我们的技术,我们从2.1m Java方法创建的数据集。我们发现改进了两个基线技术从SE文献和一个从NLP文献。
2019-02-05 cs.SE
Automatically Extracting Subroutine Summary Descriptions from Unstructured Comments
子程序的概要描述是用自然语言对程序中子程序的行为和目的的简短(通常是一句话)解释。这些摘要在文档中无处不在,许多工具(如JavaScriptTM和Doxygen)都围绕它们生成文档。然而,从非结构化的源代码存储库中提取摘要仍然是一个困难的研究问题--除非程序员对摘要进行注释,否则很难生成干净的结构化文档。这在遗留代码的大型存储库中成为一个问题,因为在几十个或几百个旧程序中追溯注释摘要的成本太高。同样,这对于自动文档生成算法的创建者来说也是一个问题,因为这些算法通常必须从大型带注释的数据集学习,而这些数据集对于许多程序设计语言来说并不存在。在本文中,我们提出了一种通过众包的半自动化方法和一种全自动化方法,用于从非结构化代码注释中注释摘要。我们目前的实验验证的方法,并提供建议和自动标注大型存储库的成本估计。
2019-12-21 cs.SE
DPS: Design Pattern Summarisation Using Code Features
Adelaide University(阿德莱德大学);Monash University(蒙纳士大学);The University of Melbourne(墨尔本大学);Singapore Management University(新加坡管理大学)
DPS利用代码特征和JavaParser生成设计模式摘要,通过自然语言生成技术捕捉上下文信息,实验证明其摘要在ROUGE-L、BLEU-4等指标上表现优异,且在开发者理解时间上优于无摘要情况。
2025-12-05 cs.SE
Programmer Visual Attention During Context-Aware Code Summarization
本研究通过眼动追踪实验,发现程序员在上下文感知代码摘要中注意力随经验减少,且存在最优阅读量,为改进自动摘要提供依据。
2025-03-26 cs.SE
Action Word Prediction for Neural Source Code Summarization
源代码摘要是创建源代码的简短、自然语言描述的任务。代码摘要是许多软件文档(如JavaBean)的主干,其中非常简短的注释(如“添加客户对象”)可以帮助程序员快速理解代码片段。近年来,基于神经网络的代码自动摘要方法得到了迅速的发展,成为一个很有价值的研究目标。然而,正如我们将在本文中展示的那样,好的摘要的产生依赖于这些摘要中的动作词的产生:如果“删除”被替换为“添加”,则上述示例的含义将完全改变。“在本文中,我们主张特别强调动作词预测,将其作为实现更好代码摘要的重要垫脚石问题-当前技术试图预测动作词以及整个摘要,但动作词预测本身相当困难。我们展示了代码摘要问题的价值,探索了当前基线的性能,并为未来的研究提供了建议。
2021-01-07 cs.SE
Ensemble Models for Neural Source Code Summarization of Subroutines
子例程的源代码摘要是对该子例程的简要描述。摘要是程序员使用的大部分文档的基础,例如JavaBean中的方法摘要。源代码摘要是编写这些摘要的任务。目前,用于代码摘要的大多数最先进的方法是基于神经网络的解决方案,类似于seq 2seq、graph 2seq和其他编码器-解码器架构。编码器的输入是源代码,而解码器帮助预测自然语言摘要。虽然这些模型在结构上趋于相似,但有证据表明,不同的模型对预测质量的贡献不同-模型性能的差异是正交和互补的,而不是整个数据集的统一。在本文中,我们探讨了不同的神经代码摘要方法的正交性,并提出了集成模型,以利用这种正交性,以获得更好的整体性能。我们证明,一个简单的合奏策略提高性能高达14.8%,并提供了这种提升的解释。这项工作的收获是,在大多数神经代码摘要技术中,对推理过程的相对较小的改变会导致预测质量的大幅提高。
2021-07-23 cs.SE
Semantic Similarity Metrics for Evaluating Source Code Summarization
源代码摘要涉及用自然语言创建源代码的简要描述。这些描述是软件文档的关键组成部分,例如JavaBean。自动代码摘要是软件工程研究的一个重要目标,这是由于摘要对程序员具有很高的价值,同时手工编写和维护文档的成本很高。目前的工作几乎都是基于通过大数据输入训练的机器模型。代码的示例和该代码的概要的大数据集被用于训练例如编码器-解码器神经模型。然后,根据一组参考摘要评估模型的输出预测。输入是模型看不到的代码,预测与参考进行比较。将预测与参考进行比较的方法基本上是通过BLEU或ROUGE等度量计算的单词重叠。使用单词重叠的问题是,不是一个句子中的所有单词都具有相同的重要性,并且许多单词都有同义词。结果是计算的相似性可能与人类读者感知的相似性不匹配。在本文中,我们进行了一项实验,以衡量各种词重叠指标与预测和参考摘要的人类评级相似性的程度。我们评估替代品的语义相似性度量的基础上,目前的工作,并提出建议,评估源代码摘要。
2022-04-04 cs.SE
Icing on the Cake: Automatic Code Summarization at Ericsson
Ericsson(爱立信);Blekinge Institute of Technology(布莱金厄理工学院)
针对爱立信Java方法自动摘要生成需求,评估ASAP基线方法并提出四种轻量级方法,实验表明其性能相当或更优且对方法名变化更鲁棒,提升商业环境部署适用性。
2024-08-19 cs.LG cs.SE
SWIRL: Interactive Sensemaking of Tool-Generated Warnings through Customized Summaries
Computer Science UCLA(加州大学洛杉矶分校);The University of Sydney(悉尼大学)
针对程序员逐一审查漏洞工具警告的痛点,提出SWIRL工具,通过交互式定制摘要与主动学习规则推理,可加快意义建构,且需交互次数更少、效果更优。
2026-09-04 cs.SE
Retrieval Augmented Code Generation and Summarization
University of California, Los Angeles(加利福尼亚大学洛杉矶分校);Columbia University(哥伦比亚大学)
软件开发人员在软件开发过程中编写了大量的源代码和文档。本质上,开发人员经常回忆他们过去在实现软件或编写文档时编写的部分源代码或代码摘要。为了模仿开发人员的代码或摘要生成行为,我们提出了一个检索增强框架,REDCODER,检索相关的代码或摘要从检索数据库,并提供它们作为补充代码生成或摘要模型。Redcoder有几个独特之处。首先,它扩展了最先进的稠密检索技术,以搜索相关代码或摘要。其次,它可以与包括单峰(仅代码或自然语言描述)或双峰实例(代码描述对)的检索数据库一起工作。我们进行了实验和广泛的分析,在Java和Python的代码生成和摘要的两个基准数据集,和有前途的结果认可我们提出的检索增强框架的有效性。
2021-09-10 cs.CL cs.SE
Context-aware Code Summary Generation
针对现有LLM代码摘要仅关注局部代码、缺少函数存在原因及全局上下文作用的问题,提出含上下文的代码摘要方法,通过两步训练3.5亿参数本地模型,性能优于GPT-4。
2024-08-16 cs.SE
EditSum: A Retrieve-and-Edit Framework for Source Code Summarization
Peking University(北京大学);Zhejiang University(浙江大学);Monash University(莫纳什大学)
本文提出名为 EditSum 的检索与编辑框架,通过检索相似代码片段作为原型摘要并自动编辑以结合模式与语义信息,显著提升了源代码摘要的关键词预测准确性和信息量。
2023-09-07 cs.CL cs.SE
Assertion-Aware Test Code Summarization with Large Language Models
University of North Texas(北卡罗来纳州立大学)
本文构建了91个Java测试用例基准,通过消融实验发现基于断言语义的提示能以更少token提升LLM测试摘要质量,并评估了四种代码LLM的性能。
2025-11-09 cs.AI cs.CE cs.SE
Interpreting Performance Profiles with Deep Learning
本文提出用深度学习结合性能剖析结果与程序语义,通过Async Profiler和CodeBERT生成代码摘要,辅助用户理解程序低效并优化,已在多个Java基准上验证有效性。
2025-08-01 cs.AI cs.PF cs.SE
Multi-Agent Taint Specification Extraction for Vulnerability Detection
North Carolina State University(北卡罗来纳州立大学);University of California, Santa Barbara(加州大学圣塔芭芭拉分校);Boston University(波士顿大学)
SemTaint通过结合LLM语义理解和传统静态分析,提取定制化的污点规范以提升漏洞检测效果
2026-01-15 cs.CR cs.SE
Improved Code Summarization via a Graph Neural Network
University of Notre Dame(圣母大学);IBM Research(IBM研究院)
自动源代码摘要是为源代码生成自然语言描述的任务。自动代码摘要是一个快速扩展的研究领域,特别是随着社区更好地利用神经网络和AI技术的进步。通常,源代码摘要技术使用源代码作为输入并输出自然语言描述。然而,一个强烈的共识是,使用结构信息作为输入导致改进的性能。使用结构信息的第一种方法将AST扁平化为序列。最近,基于随机AST路径或图神经网络的更复杂的方法已经改进了使用扁平化AST的模型。然而,文献仍然没有描述将图神经网络与源代码序列一起用作模型的单独输入。因此,在本文中,我们提出了一种使用基于图的神经架构的方法,该架构可以更好地匹配AST的默认结构来生成这些摘要。我们使用210万Java方法-注释对的数据集来评估我们的技术,并显示了对四种基线技术的改进,其中两种来自软件工程文献,两种来自机器学习文献。
2020-04-07 cs.CL cs.SE
A Convolutional Attention Network for Extreme Summarization of Source Code
University of Edinburgh(爱丁堡大学);Peking University(北京大学)
神经网络中的注意力机制已被证明对于输入和输出不具有固定维数的问题是有用的。通常存在局部平移不变的特征,并且对于引导模型的注意力是有价值的,但是以前的注意力架构并不是专门为了学习这些特征而构建的。我们引入了一个注意力神经网络,它采用卷积的输入令牌检测本地时不变和长距离的主题注意力特征的上下文相关的方式。我们将这种架构应用于将源代码片段极端总结成简短的、描述性的函数名称之类的摘要的问题。使用这些功能,该模型通过边缘化两个注意力机制来顺序生成摘要:一个基于输入标记的注意力权重预测下一个摘要标记,另一个能够将代码标记直接复制到摘要中。我们在10个流行的Java项目上展示了我们的卷积注意力神经网络的性能,表明与以前的注意力机制相比,它实现了更好的性能。
2016-05-25 cs.CL cs.LG cs.SE
M2TS: Multi-Scale Multi-Modal Approach Based on Transformer for Source Code Summarization
Shandong Normal University(山东师范大学)
源代码摘要旨在生成代码片段的自然语言描述。现有的研究多从代码片段的标记序列和抽象树中学习代码片段的语法和语义知识。它们使用学习的代码表示作为代码摘要模型的输入,代码摘要模型可以相应地生成描述源代码的摘要。传统模型将AST作为序列遍历,或者将AST分割为路径作为输入。然而,前者失去了AST的结构特性,后者破坏了AST的整体结构。因此,在学习源代码摘要的代码表示中,全面捕获AST的结构特征仍然是一个有待解决的具有挑战性的问题。本文提出了一种基于Transformer的多尺度多模态源代码摘要方法M2TS。M2TS采用多尺度AST特征提取方法,可以在多个局部和全局级别上更完整、更准确地提取AST的结构。为了补充AST中缺失的语义信息,我们还获得了代码标记特征,并使用跨模态融合方法将它们与提取的AST特征进一步结合,该方法不仅融合了源代码的句法和上下文语义信息,而且突出了每个模态的关键特征。我们在两个Java和一个Python数据集上进行了实验,实验结果表明,M2TS优于当前最先进的方法。我们在www.example.com上发布代码。
2022-03-27 cs.AI cs.SE
Retrieve and Refine: Exemplar-based Neural Comment Generation
Peking University(北京大学);Monash University(莫纳什大学)
代码注释生成是软件自动开发领域的一项重要任务,其目的是自动生成源代码的自然语言描述。传统的注释生成方法使用手工制作的模板或信息检索(IR)技术来生成源代码摘要。近年来,基于神经网络的方法利用广受好评的编码器-解码器深度学习框架从大规模并行代码语料库中学习注释生成模式,取得了令人印象深刻的结果。然而,这些新兴的方法仅将代码相关信息作为输入。软件重用在软件开发过程中很常见,这意味着相似代码片段的注释有助于注释生成。受基于IR和基于模板的方法的启发,本文提出了一种神经注释生成方法,其中我们使用相似代码片段的现有注释作为范例来指导注释生成。具体来说,给定一段代码,我们首先使用IR技术来检索类似的代码片段,并将其注释视为范例。然后,我们设计了一种新的seq 2seq神经网络,它以给定的代码,其AST,其类似的代码,其范例作为输入,并利用来自范例的信息,以协助在目标评论生成的基础上的源代码和类似的代码之间的语义相似性。我们评估我们的方法上的一个大规模的Java语料库,其中包含约2 M的样本,实验结果表明,我们的模型优于国家的最先进的方法的大幅利润。
2020-10-09 cs.AI cs.SE