Generating Question Titles for Stack Overflow from Mined Code Snippets
Stack Overflow已被软件开发人员大量使用,作为通过互联网从同行中寻求编程相关信息的流行方式。Stack Overflow社区建议用户在创建问题时提供相关代码片段,以帮助其他人更好地理解并提供帮助。以前的研究表明,这些问题中有相当一部分是低质量的,对Stack Overflow中的其他潜在专家没有吸引力。这些问得不好的问题不太可能得到有用的答案,并阻碍了整个知识生成和共享过程。考虑到在SO中引入低质量问题的原因之一是,许多开发人员可能无法澄清和总结他们所呈现的代码片段背后的关键问题,因为他们缺乏与问题相关的知识和术语,和/或他们的写作技巧很差,在这项研究中,我们提出了一种方法来帮助开发人员编写高-通过使用深度序列到序列学习方法为代码片段自动生成问题标题来生成高质量的问题。我们的方法是完全数据驱动的,并使用一个注意力机制来执行更好的内容选择,一个复制机制来处理罕见的单词问题和覆盖机制,以消除单词重复问题。我们在各种程序设计语言(例如,Python,Java,JavaScript,C#和SQL)和我们的实验结果表明,我们的方法显着优于几个国家的最先进的基线在自动和人工评估。我们已经发布了我们的代码和数据集,以方便其他研究人员验证他们的想法并激发后续工作。
2020-07-13 cs.SE
Attribution Required: Stack Overflow Code Snippets in GitHub Projects
Stack Overflow(SO)是最大的开发者问答网站,提供了大量可复制的代码片段。使用这些片段会引起各种维护和法律问题。SO许可证需要署名,即,引用原始问题或答案,并要求派生作品采用兼容的许可证。虽然有一个激烈的辩论SO的许可证模型的代码片段和所需的归属,很少有人知道的程度,代码片段被复制从SO没有适当的归属。在本文中,我们提出了一项实证研究的研究设计和总结结果,分析了GitHub项目中SO代码片段的属性和非属性使用。平均而言,3.22%的被分析仓库和7.33%的流行仓库包含对SO的引用。此外,我们发现开发人员更愿意参考SO上的整个线程,而不是特定的答案。对于Java,至少有三分之二的复制片段没有属性。
2017-07-03 cs.SE
APIzation: Generating Reusable APIs from StackOverflow Code Snippets
像StackOverflow这样的开发者论坛已经成为现代软件开发实践的重要资源。然而,许多代码片段缺乏定义良好的方法声明,因此它们通常不完整,无法立即重用。开发人员必须通过参数化所涉及的变量并标识返回值来调整检索到的代码片段。这个活动,我们称之为代码段的API化,可能是乏味和耗时的。在本文中,我们提出了APIzator自动执行的Java代码片段的APIzations。APIzator基于我们通过研究GitHub中的真实APIzations提取的四种常见模式。APIzator提供了一种静态分析算法,可以自动提取方法参数和返回语句。我们使用从20个开发人员收集的200个APIzations的地面事实来评估APIzator。对于113个(56.50%)和115个(57.50%)APIzation,APIzator和开发人员分别提取了相同的参数和返回语句。对于163个(81.50%)API,参数或返回语句相同。
2021-09-02 cs.SE
An Empirical Study of Java Code Improvements Based on Stack Overflow Answer Edits
Faculty of Information and Communication Technology, Mahidol University(马希达大学信息与通信技术学院);State University of Ceara (UECE)(塞阿拉州立大学)
本研究通过分析Stack Overflow的Java回答编辑,识别可改进的开源Java代码,发现近7%的采纳回答有多次修订,近半数编辑代码可应用于开源项目,11个bug修复方案被接受。
2026-08-25 cs.SE
On the Utility of Marrying GIN and PMD for Improving Stack Overflow Code Snippets
软件开发人员越来越依赖于问答门户和博客来编码解决方案。虽然这些接口提供了有用的信息,但有人担心这里托管的代码往往不正确,不安全或不完整。以前的工作确实通过使用静态分析在Stack Overflow上提供的代码中检测到了一系列错误。静态分析可能会对快速建立在线可用软件代码的健康状况大有帮助。此外,实现快速自动化程序改进的机制可以增强这样的代码。因此,我们提出了这个概念的证明。我们使用PMD静态分析工具来检测Stack Overflow Java代码片段样本的性能故障,然后使用GIN对这些代码片段执行突变。然后,我们重新分析GIN突变后这些片段中的性能故障。GIN的RandomSampler被用于对3,034个片段执行17,986个独特的行和语句补丁,其中PMD违规被从770个补丁版本中删除。我们的研究结果表明,静态分析技术可以与自动化程序改进方法相结合,以提高公共可用的代码很少的资源需求。我们将讨论我们在这方面的研究计划。
2022-02-03 cs.SE
Usage and Attribution of Stack Overflow Code Snippets in GitHub Projects
Stack Overflow(SO)是最受软件开发人员欢迎的问答网站,提供了大量可复制的代码片段。使用这些片段会引起维护和法律问题。SO的许可证(CC BY-SA 3.0)需要署名,即,引用原始问题或答案,并要求派生作品采用兼容的许可证。虽然有一个激烈的辩论SO的许可证模型的代码片段和所需的归属,很少有人知道的程度,代码片段被复制从SO没有适当的归属。我们提出了一项大规模实证研究的结果,分析了公共GitHub(GH)项目中SO答案中非平凡Java代码片段的使用和属性。我们遵循三种不同的方法来对未归因使用的比例进行三角测量,并与软件开发人员进行了两次在线调查,以补充我们的结果。对于我们分析的不同项目集,包含引用SO的文件的项目比例在3.3%和11.9%之间变化。我们发现,在所有分析过的包含SO代码的存储库中,最多有1.8%的代码以与CC BY-SA 3.0兼容的方式使用。此外,我们估计,从SO复制的代码片段中,最多有四分之一是根据需要进行属性化的。在接受调查的开发人员中,近一半的人承认在没有署名的情况下从SO复制代码,约三分之二的人不知道SO代码片段的许可及其影响。
2018-09-21 cs.SE
Towards Summarizing Code Snippets Using Pre-Trained Transformers
本研究针对细粒度代码片段摘要生成数据稀缺问题,通过构建注释数据集、训练多任务注释分类关联模型,构建大规模带文档代码片段数据集并训练摘要模型,性能优于现有基线方法。
2024-02-01 cs.SE
How do annotations affect Java code readability?
本文通过332人调查和15对Java代码片段,研究了代码注解对可读性的影响,发现开发者对注解提升可读性的看法存在分歧但无共识,为API设计提供了参考。
2024-04-26 cs.SE
Towards Exploring the Code Reuse from Stack Overflow during Software Development
作为最知名的程序员问答网站之一,Stack Overflow(即,SO)每天为数万名开发者提供服务。以前的工作表明,许多开发人员在SO上重用代码片段,当他们找到一个答案(来自SO),功能上匹配他们在开发活动中遇到的编程问题。为了研究程序员在项目开发过程中如何重用SO上的代码,我们进行了全面的实证研究。首先,为了捕捉程序员的开发活动,我们从793个开源Java项目的提交中收集了342,148个修改过的代码片段,这些修改过的代码可以反映开发过程中遇到的编程问题。我们还从SO上的1,355,617个帖子中收集了代码片段。然后,我们使用CCBACK来检测提交的修改代码与SO的代码之间的代码克隆,并进一步分析程序员在开发过程中解决编程问题时的代码重用。我们统计了不同年份每个项目提交中修改后的代码片段的代码重用率,结果显示代码重用率平均为6.32%,最高为8.38%。项目提交中的代码复用率逐年上升,新成立项目的代码复用比例高于老项目。我们还发现有些项目重用了很多年前的代码片段。此外,我们发现,有经验的开发人员似乎更有可能重用SO上的知识。此外,我们发现,在bug相关的提交(6.67%)的代码重用率略高于在非bug相关的提交(6.59%)。此外,我们还发现,代码重用率(14.44%)在Java类文件中,经历了多次修改是两倍以上的整体代码重用率(6.32%)。
2022-04-27 cs.SE
I Know What You Are Searching For: Code Snippet Recommendation from Stack Overflow Posts
Stack Overflow已经被软件开发人员大量使用来寻找与编程相关的信息。越来越多的开发人员使用社区问答论坛(如Stack Overflow)来搜索如何完成特定编码任务的代码示例。这通常被认为比从源文档,教程或完整的工作示例中工作更有效。然而,由于这些在线问答论坛的复杂性以及它们包含的大量信息,开发人员可能会被大量的可用信息所淹没。这使得很难找到和/或甚至知道最相关的代码示例来满足他们的需求。为了缓解这个问题,在这项工作中,我们提出了一个查询驱动的代码推荐工具,名为Que 2Code,它可以从Stack Overflow帖子中识别用户查询的最佳代码片段。我们的方法有两个主要阶段:(i)语义等价的问题检索和(ii)最佳代码片段推荐。为了评估我们提出的模型的性能,我们进行了一个大规模的实验,以评估语义等价的问题检索任务和最佳代码片段推荐任务的有效性分别在Python和Java数据集堆栈溢出。我们还进行了一项人类研究,以衡量现实世界的开发人员如何看待我们的模型生成的结果。自动和人工评估结果都证明了我们模型的良好性能,我们已经发布了我们的代码和数据来帮助其他研究人员。
2022-10-28 cs.SE
Toxic Code Snippets on Stack Overflow
在线代码克隆是从软件项目或在线源复制到Stack Overflow的代码片段。由于在将代码复制到Stack Overflow后缺乏检查机制,它们可能成为有毒代码片段,例如,它们遭受过时或违反原始软件许可证的问题。我们提出了一个在线代码克隆的研究堆栈溢出和它们的毒性,结合两个开发人员的调查和大规模的代码克隆检测。一项针对201名高知名度Stack Overflow回答者(33%的回复率)的调查显示,131名参与者(65%)曾经被告知过时的代码,其中26名(20%)很少或从未修复过代码。138名受访者(69%)从不检查他们复制的代码片段与Stack Overflow的CC BY-SA 3.0之间的许可冲突。对87位Stack Overflow访问者的调查显示,他们在Stack Overflow的回答中遇到了几个问题:不匹配的解决方案,过时的解决方案,不正确的解决方案和错误的代码。85%的人不知道Stack Overflow强制执行的CC BY-SA 3.0许可证,66%的人在重用代码片段时从不检查许可证冲突。我们的克隆检测发现了Stack Overflow上的72,365个Java代码片段和Qualitas语料库中的111个开源项目之间的在线克隆对。我们分析了2,289个非平凡的在线克隆候选人。我们的调查显示,有强有力的证据表明,153个克隆已经从Qualitas项目复制到Stack …
2019-04-01 cs.SE
DepRes: A Tool for Resolving Fully Qualified Names and Their Dependencies
重用其他程序员在Q&A论坛上共享的代码片段(例如,StackOverflow)是软件开发人员遵循的常见做法。但是,如果缺少关于借用代码段中标识符的完全限定名(FullyQualified Name,简称CQN)的足够信息,则会导致严重的编译错误。程序员要么必须手动搜索标识符的正确序列号,这是一个繁琐且容易出错的过程,要么使用开发的工具来自动识别正确的序列号。尽管研究人员努力自动识别代码片段中的CSN,但目前的方法在实践中的准确性很低。此外,虽然这些工具专注于解析代码片段中标识符的CNON,但它们留下了找到正确的第三方库(即,依赖性)实现未解决的CSDN。使用不正确的依赖项或依赖项的不正确版本可能会导致编译器无法检测到的语义错误。因此,它可能会在运行时造成严重损害。在本文中,我们将介绍DepRes,这是一个利用基于草图的方法来解析基于Java的代码片段中的CDN的工具,并为每个CDN推荐正确的依赖关系。DepRes工具的源代码、文档以及演示视频可从其代码库https://github.com/SoftwareDesignLab/DepRes-Tool获得。
2021-08-02 cs.SE
From Absolute to Relative Code Comprehensibility Prediction
William & Mary(威廉与玛丽学院);New Jersey Institute of Technology(新泽理工学院)
该研究针对现有绝对代码可理解性预测模型表现不佳的问题,提出相对可理解性预测任务,通过实验证明其在多数配置下优于基线模型,且受从业者青睐。
2026-08-07 cs.SE
Recommending Stack Overflow Posts for Fixing Runtime Exceptions using Failure Scenario Matching
使用在线Q&A论坛(如Stack Overflow(SO))来指导解决程序错误以及其他开发问题,在现代软件开发实践中很常见。异常(RE)是SO上积极讨论的一类重要的bug。在这项工作中,我们提出了一种技术和原型工具,称为MAESTRO,可以自动推荐一个SO后,是最相关的开发人员的代码中给定的Java RE。MAESTRO将开发人员代码中的异常生成程序场景与SO帖子中讨论的场景进行比较,并返回最接近的匹配帖子。为了有效地提取和比较异常场景,MAESTRO首先使用帖子中的答案代码片段来暗示帖子的问题代码片段中的一个行子集负责异常,然后将这些行与开发人员的代码进行比较,以各自的抽象程序图(APG)表示。APG是一个简化和抽象的衍生抽象语法树,在这项工作中提出的,它允许一个有效的比较体现在高层次的程序结构的功能,同时丢弃许多低层次的语法或语义差异。我们评估MAESTRO的基准测试的Java RE的78个实例中提取的前500名Java项目在GitHub上,并表明,MAESTRO可以返回一个高度相关或有点相关的SO后对应的异常实例在71%的情况下,相比之下,相关的职位返回只有8% - 44%的情况下,由四个竞争对手的工具基于最先进的技术。我们还进行了用户体验研究MAESTRO与10个Java开发人员,其中参与者判断MAESTRO报告高度相关或有点相关的职位在80%的情况下。在某些情况下,该帖子…
2020-09-21 cs.SE
GENCNIPPET: Automated Generation of Code Snippets for Supporting Programming Questions
GENCNIPPET是一个与Stack Overflow集成的工具,利用微调的Llama-3模型自动生成缺失的代码片段,以帮助编程问题获得及时解决方案。
2025-04-22 cs.SE
Automatic Program Repair with OpenAI's Codex: Evaluating QuixBugs
OpenAI的Codex是一个在大型代码语料库上训练的类似GPT-3的模型,已经成为学术界内外的头条新闻。给定用户提供的简短描述,它能够合成在大多数情况下语法和语义上有效的代码段。在这项工作中,我们要调查法典是否能够本地化和修复错误,在自动程序修复领域的中心感兴趣的任务。我们的初始评估使用多语言菜Bugs基准测试(Python和Java中有40个bug)。我们发现,尽管没有接受过APR培训,Codex是令人惊讶的有效,并与最近的最先进的技术竞争。我们的研究结果还表明,Codex在修复Python方面比Java稍微成功一些。
2021-11-06 cs.SE
Data-Driven Vulnerability Detection and Repair in Java Code
Java平台提供了各种API来促进安全编码。然而,对于缺乏网络安全培训的开发人员来说,正确使用安全API通常具有挑战性。先前的工作表明,许多开发人员滥用安全API;这种滥用可能会将漏洞引入软件,使安全保护无效,并向黑客提供安全漏洞。为了消除这种API相关的漏洞,本文提出了SEADER -我们的新方法,检测和修复安全API滥用。给定一个示例性的不安全代码片段及其安全对应代码片段,SEADER会比较这些代码片段并进行数据依赖性分析,以推断安全API滥用模板和相应的修复操作。根据推断的信息,给定一个程序,SEADER执行过程间静态分析,以搜索任何安全API滥用,并针对这些漏洞提出定制的修复建议。为了评估SEADER,我们将其应用于25个<不安全,安全>代码对,SEADER成功地推断出18个独特的API误用模板和相关修复。通过这些漏洞修复模式,我们进一步将SEADER应用于10个开源项目,这些项目总共包含32个已知漏洞。我们的实验表明,SEADER检测漏洞的准确率为100%,召回率为84%,准确率为91%。此外,我们将SEADER应用于100个Apache开源项目,并检测到988个漏洞; SEADER始终正确地定制修复建议。根据SEADER的输出,我们提交了60个pull requests。截至目前,已有18个项目的开发商对SEADER的建议给予了积极的反馈。我们的研究结果表明,SEADE…
2021-02-13 cs.CR cs.SE
Generating Java Methods: An Empirical Assessment of Four AI-Based Code Assistants
本文针对真实开源Java项目构建的100个方法数据集,比较评估了GitHub Copilot、Tabnine、ChatGPT和Google Bard四种AI代码助手,发现Copilot准确度更高,但处理类外依赖时所有助手效果均显著下降。
2024-02-14 cs.SE
Automatic Extraction of Security-Rich Dataflow Diagrams for Microservice Applications written in Java
针对 Java 微服务应用,提出通过解析源码与配置、迭代滚雪球发现关键词并结合多类检测自动生成富安全 DFD 的工具化方法,在17个开源应用上达到93%精确率和85%召回率。
2023-04-25 cs.SE
Predicting the Programming Language of Questions and Snippets of StackOverflow Using Natural Language Processing
University of Victoria(维多利亚大学)
Stack Overflow是软件开发人员中最受欢迎的Q&A网站。作为一个知识共享和获取的平台,Stack Overflow中发布的问题通常包含一个代码片段。Stack Overflow依赖于用户正确地标记问题的程序设计语言,它只是假设问题内部代码段的程序设计语言与问题本身的标记相同。在本文中,我们提出了一个分类器来预测使用自然语言处理(NLP)和机器学习(ML)在堆栈溢出中发布的问题的程序设计语言。该分类器通过结合问题的标题、正文和代码片段的特征,在预测24种最流行的程序设计语言方面达到了91.1%的准确率。我们还提出了一个分类器,只使用标题和身体的问题,并有81.1%的准确率。最后,我们提出了一个分类器的代码片段,只有达到77.7%的准确率。这些结果表明,将机器学习技术部署在问题的文本和代码片段的组合上可以提供最佳性能。这些结果还表明,可以识别几行源代码的片段的程序设计语言。我们可视化的两个程序设计语言Java和SQL的特征空间,以确定堆栈溢出中的问题对应于这些语言的信息的一些特殊属性。
2018-09-21 cs.LG cs.SE stat.ML
Reassessing Java Code Readability Models with a Human-Centered Approach
本研究以人为中心的方法评估现有Java代码可读性模型用于大语言模型调整的效果,发现AI生成的简洁可执行代码易被双方判定为可读,但两类评估相关性有限,为后续LLM适配和CR模型优化指明方向。
2024-01-26 cs.HC cs.SE
Yet Another Combination of IR- and Neural-based Comment Generation
代码注释生成技术旨在为源代码生成自然语言描述。有两种正交的方法来完成这项任务,即,基于信息检索(IR)和基于神经的方法。最近的研究集中在结合他们的优势,通过喂养输入代码和类似的代码片段检索的IR为基础的方法,基于神经的方法,这可以增强基于神经的方法的输出低频词的能力,并进一步提高性能。然而,尽管取得了巨大的进步,我们的试点研究表明,目前的组合是不可推广的,并可能导致性能下降。在本文中,我们提出了一个简单但有效的方法来解决这两个评论生成方法的现有组合的问题。我们不是静态地绑定IR和基于神经的方法,而是以动态的方式将它们结合起来。具体来说,给定一个输入代码片段,我们首先使用基于IR的技术从语料库中检索类似的代码片段。然后,我们使用基于交叉编码器的分类器来决定要动态使用的评论生成方法,即,如果检索到的相似代码片段是真肯定的(即,在语义上类似于输入),我们直接使用基于IR的技术。否则,我们将输入传递给基于神经的模型以生成评论。我们评估我们的方法上的大规模数据集的Java项目。实验结果表明,我们的方法可以达到25.45 BLEU分数,提高了最先进的IR为基础的方法,基于神经网络的方法,以及他们的组合,分别为41%,26%和7%,。我们提出了一个简单但有效的动态组合的IR为基础的和基于神经的评论生成,它优于国家的最先进的方法大幅利润。
2021-07-27 cs.SE
Example-Based Vulnerability Detection and Repair in Java Code
Java库JCA和JSSE提供了加密API以促进安全编码。当开发人员滥用某些API时,他们的代码容易受到网络攻击。为了消除这些漏洞,人们构建了通过模式匹配检测安全API滥用的工具。然而,大多数工具不(1)修复误用或(2)允许用户扩展工具的模式集。为了克服这两个限制,我们创建了Seader--一种基于示例的方法来检测和修复安全API滥用。给定一个示例<insecure,secure>代码对,Seader比较代码片段以推断任何API滥用模板和相应的修复编辑。根据推断出的信息,给定一个程序,Seader执行过程间静态分析来搜索安全API误用并提出定制的修复方案。为了进行评估,我们将Seader应用于28个<不安全,安全>代码对; Seader成功地推断出21个独特的API误用模板和相关修复。通过这些<vulnerability,fix>模式,我们将SEADER应用于一个有86个已知漏洞的程序基准测试。Seader以95%的准确率、72%的召回率和82%的F分数检测到漏洞。我们还将Seader应用于100个开源项目,并手动检查了77个建议的修复;其中76个修复是正确的。Seader可以帮助开发人员正确使用安全API。
2022-04-28 cs.CR cs.SE
Using Distributed Representation of Code for Bug Detection
用于缺陷检测的神经建模的最新进展非常有前途。更具体地说,使用代码片段来创建连续向量或\textit{embeddings}已被证明在方法名称预测方面非常出色,并声称在其他任务(如错误检测)方面也很有效。然而,为此目的,该方法尚未对后者进行经验测试。在这项工作中,我们使用的Code2Vec模型的Alon等。评估它检测关闭的Java源代码中的一个错误。我们将错误检测定义为一个二进制分类问题,并在包含可能正确代码的大型Java文件语料库上训练我们的模型。为了正确分类不正确的代码,模型也需要在错误的示例上进行训练。为了实现这一点,我们通过对原始语料库进行简单的突变来创建可能不正确的代码。我们的定量和定性评估表明,使用代码的结构化表示的基于注意力的模型确实可以成功地用于方法命名以外的其他任务。
2019-11-28 cs.SE
Beyond Code Snippets: Benchmarking LLMs on Repository-Level Question Answering
Department of Computer Science, Virginia Tech(弗吉尼亚理工大学计算机科学系)
本文提出StackRepoQA数据集,用于评估大语言模型在多项目仓库层面的问答能力,通过对比不同配置下的性能,揭示了模型在处理仓库级程序理解时的局限性。
2026-04-04 cs.AI cs.SE
Neural Program Repair with Program Dependence Analysis and Effective Filter Mechanism
提出一种结合程序切片与过滤机制的神经程序修复框架,利用预训练语言模型修复单行Java错误,在五个基准上优于现有方法。
2023-05-16 cs.SE
Who Made This Copy? An Empirical Analysis of Code Clone Authorship
本研究实证分析153个Apache项目的代码克隆作者身份,发现克隆行平均占18.5%,且主要作者贡献了三分之一的克隆集,为克隆管理工具设计提供依据。
2023-09-03 cs.SE
Deep Graph Matching and Searching for Semantic Code Retrieval
Zhejiang University(浙江大学);IBM T. J. Watson Research Center(IBM托马斯·J·沃森研究中心);Squirrel AI Learning(松鼠AI学习);Ant Group(蚂蚁集团);Zhejiang Lab(之江实验室)
代码检索是从大量的源代码库中找到与查询的自然语言描述高度匹配的代码片段。最近的工作主要使用自然语言处理技术来处理查询文本(即,人类自然语言)和代码片段(即,机器程序设计语言),然而忽略了查询文本和源代码的深层结构化特征,这两者都包含丰富的语义信息。本文提出了一种基于图神经网络的端到端深度图匹配与搜索(DGMS)模型,用于语义代码检索任务。为此,我们首先表示自然语言查询文本和程序设计语言代码片段与统一的图结构的数据,然后使用所提出的图匹配和搜索模型检索最佳匹配的代码片段。特别是,DGMS不仅捕捉更多的结构信息,为个人的查询文本或代码片段,但也学习它们之间的细粒度的相似性,基于交叉注意的语义匹配操作。我们在两个公共代码检索数据集上使用两种代表性的程序设计语言(即,Java和Python)。实验结果表明,DGMS显着优于国家的最先进的基线模型在两个数据集上的大幅度提高。此外,我们广泛的消融研究系统地调查和说明DGMS的每个部分的影响。
2021-01-22 cs.AI cs.IR cs.SE
From Restructuring to Stabilization: A Large-Scale Experiment on Iterative Code Readability Refactoring with Large Language Models
Saarland University(萨尔兰大学)
本文通过大规模实验研究大语言模型在迭代代码重构中的能力,揭示了重构过程的收敛趋势及可读性提升的机制。
2026-02-25 cs.SE
No Need to Lift a Finger Anymore? Assessing the Quality of Code Generation by ChatGPT
本研究通过多语言算法题和安全场景,从正确性、复杂度、安全性及多轮修复能力维度系统评估ChatGPT的代码生成质量,揭示其潜在问题,为改进AI代码生成技术奠基。
2024-04-13 cs.SE
CUBETESTERAI: Automated JUnit Test Generation using the LLaMA Model
University of Rome La Sapienza(罗马大学)
本文介绍CUBETESTERAI工具,利用LLaMA模型为Spring Boot Java应用自动生成JUnit测试,通过Web界面和CI/CD集成,实现高代码覆盖率,并在真实程序中优于现有工具。
2025-03-13 cs.AI cs.SE
APIContext2Com: Code Comment Generation by Incorporating Pre-Defined API Documentation
University of British Columbia Okanagan(不列颠哥伦比亚大学奥肯那根分校)
代码注释对理解软件程序有很大的帮助,也可以帮助开发人员节省大量的软件维护时间。代码注释生成的目的是自动预测给定代码片段的自然语言中的注释。一些作品调查的影响,整合外部知识的质量生成的评论。在这项研究中,我们提出了一个解决方案,即APIContext 2Com,通过将预定义的应用程序编程接口(API)上下文,以提高生成的评论的有效性。API上下文包括在代码片段中使用的预定义API的定义和描述。由于详细的API信息表达了代码段的功能,因此它有助于更好地生成代码摘要。我们引入了一个seq-2-seq编码器-解码器神经网络模型,该模型具有不同的多个编码器集合,以有效地将不同的输入转换为目标评论。还开发了一个排名机制来排除非信息性的API,以便我们可以过滤掉不相关的API。我们使用CodeSearchNet的Java数据集来评估我们的方法。结果表明,该模型对BLEU 1、BLEU 2、BLEU 3、BLEU 4、METEOR、ROUGE-L的最佳基线分别提高了1.88(8.24%)、2.16(17.58%)、1.38(18.3%)、0.73(14.17%)、1.58(14.98%)和1.9(6.92%)。人类评估和消融研究证实了生成的评论的质量以及架构和排名API的效果。
2023-03-03 cs.CL cs.LG cs.SE
I Can Find You in Seconds! Leveraging Large Language Models for Code Authorship Attribution
University of Central Florida(中佛罗里达大学);Nanyang Technological University(南洋理工大学);Technical University of Munich(慕尼黑工业大学);Propulsion and Space Research Center, Technology Innovation Institute(技术创新研究所推进与空间研究中心)
针对传统代码作者归属方法泛化性差、大规模场景扩展性不足的问题,本文探索大语言模型在代码作者归属中的应用,提出锦标赛式大规模识别方法,在跨语言场景下取得有效结果,为相关领域应用提供新思路。
2025-01-14 cs.AI cs.SE
FRANC: A Lightweight Framework for High-Quality Code Generation
University of Notre Dame(圣母大学)
本文提出FRANC,一个轻量级代码生成框架,通过静态过滤器、质量感知排序器和提示工程提升代码安全性与质量,无需重训模型,在多语言和多个数据集上验证了其有效性。
2024-08-28 cs.LG cs.SE
Are Human Rules Necessary? Generating Reusable APIs with CoT Reasoning and In-Context Learning
本文提出 Code2API,利用思维链推理和少样本上下文学习自动将 Stack Overflow 代码片段转化为可复用 API,无需训练或人工规则,在参数与返回值识别上显著超越 APIzator,并验证了跨语言泛化能力。
2024-05-06 cs.SE
MultiAIGCD: A Comprehensive dataset for AI Generated Code Detection Covering Multiple Languages, Models,Prompts, and Scenarios
本研究针对大语言模型代码普及带来的学术诚信与招聘公平问题,构建了覆盖3种语言、6种LLM、3种提示、3类场景的MultiAIGCD数据集,并基准测试了3种主流检测模型的跨场景性能,公开资源以支撑相关研究。
2025-07-29 cs.AI cs.SE
Just another copy and paste? Comparing the security vulnerabilities of ChatGPT generated code and StackOverflow answers
Department of Computer Science, North Carolina State University, Raleigh, North Carolina(计算机科学系,北卡罗来纳州立大学,拉法叶,北卡罗来纳州)
本研究使用 CodeQL 对 ChatGPT 与 StackOverflow 各 108 个 Java 代码片段进行 CWE 漏洞实证比较,发现 ChatGPT 漏洞显著更少,但两类来源均不应被盲目信任。
2024-03-22 cs.AI cs.CR cs.SE
Human-Aligned Code Readability Assessment with Large Language Models
本文提出 CoReEval 大规模基准,系统评估 10 个 LLM 在多语言、多提示和解码设置下的代码可读性判断,揭示开发者引导提示可提升人类对齐与解释质量。
2025-10-18 cs.SE
Beyond Language Boundaries: Uncovering Programming Language Families for Code Language Models
School of Computer Science, Shanghai Jiao Tong University(上海交通大学计算机学院)
本文提出基于嵌入的框架揭示编程语言家族,通过语言关系优化多语言代码LLM训练,提升代码智能任务性能。
2025-12-22 cs.SE
How Do Developers Edit AI-Generated Code, and How Well Do LLMs Infer Their Edits? Insights from 53.6K Developer Edits
Carnegie Mellon University(卡内基梅隆大学)
研究人工智能生成代码的开发者编辑行为,引入DECODE数据集。通过该数据集进行数据分析及对大语言模型预测代码编辑能力的基准测试,发现多数编辑在前15分钟,且微调后开源模型表现更佳,强调以开发者为中心方法对未来AI编程助手的必要性。
2026-10-30 cs.AI cs.HC cs.LG