Program Repair with Minimal Edits Using CodeT5
University of Aizu(会津大学);Dhaka University of Engineering & Technology(达卡工程技术大学)
本文提出使用CodeT5模型,通过微调错误-正确程序对,以最小编辑距离生成正确程序,实验达到91.95%的pass@100,证明其在入门编程问题修复中的有效性。
2023-09-26 cs.AI cs.CL cs.SE
Revisiting Code Similarity Evaluation with Abstract Syntax Tree Edit Distance
University of Luxembourg(卢森堡大学);Luxembourg Institute of Science and Technology(卢森堡科学技术研究所)
本文重新审视代码相似度评估,重点研究AST编辑距离在多种语言中的表现,并提出并发布了一种增强版TSED自适应指标,实验证明其在所有测试语言中均有效。
2024-06-03 cs.CL cs.PL cs.SE
PAFT: Preservation Aware Fine-Tuning for Minimal-Edit Program Repair
School of Artificial Intelligence (School of Software), Yanshan University(燕山大学人工智能学院(软件学院));Department of Computer Science, Aalto University(阿尔托大学计算机科学系)
PAFT通过保留意识微调方法,在Defects4J和HumanEval-Java上将pass@1提升65.6%,同时降低平均编辑距离32.6%,实现更小、更局部化的合理补丁。
2026-04-06 cs.SE
Learner-Tailored Program Repair: A Solution Generator with Iterative Edit-Driven Retrieval Enhancement
本文提出面向学习者的程序修复任务及LSGEN框架,通过迭代编辑驱动检索增强方法提升程序修复效果,实验验证其在编程辅导中的有效性。
2026-01-18 cs.AI cs.CL cs.SE
Sirius: Static Program Repair with Dependence Graph-Based Systematic Edit Patterns
软件开发通常涉及系统编辑,对许多代码位置进行类似但不相同的更改,这对开发人员来说是容易出错和费力的。从过去的代码更改中挖掘和学习这种系统编辑模式(SEP)使我们能够检测和修复被忽视的需要系统编辑的错误代码。最近的一项研究提出了一种有前途的SEP挖掘技术,该技术基于程序依赖图(PDG),而传统的方法利用基于语法的表示。基于PDG的SEP具有高度的表达性,并且可以捕获比基于语法的SEP更有意义的变化。下一个要解决的挑战是将与基于PDG的SEP中相同的代码更改应用于其他代码位置;检测和修复需要系统编辑的被忽略的位置。现有的程序转换技术不能很好地解决这一挑战,因为(1)它们期望在基于PDG的SEP中不能保证的许多结构代码相似性,或者(2)它们基于PDG工作但限于特定域(例如,API迁移)。我们在本文中提出了一个通用的程序转换算法,应用PDG为基础的SEP。我们的算法确定了一个小的可移植的结构子树为每个PDG节点,从而适应代码的变化,从基于PDG的SEP到其他位置。我们构建了一个程序修复管道Sirius,它结合了该算法并自动化了挖掘SEP的过程,检测需要系统编辑的被忽视的代码位置(错误),并通过应用SEP修复它们。我们评估了Sirius的修复性能与超过80个存储库组成的开源软件语料库。Sirius的精确度为0.710,召回率为0.565,F1得分为0.630,而最先进的技术分别为0.470,…
2021-07-09 cs.SE
InvAASTCluster: On Applying Invariant-Based Program Clustering to Introductory Programming Assignments
INESC-ID;Instituto Superior Técnico(理工学院);Universidade de Lisboa(里斯本大学);CIIRC;Czech Technical University in Prague(布拉格捷克技术大学)
本文提出 InvAASTCluster 程序聚类方法,结合动态生成的程序不变量与匿名化抽象语法树表示语义等价的入门编程作业,集成至修复工具后使修复的学生程序数量提升约13%且耗时更短。
2025-04-30 cs.AI cs.CY cs.PL
Externalizing Requirement-to-Repair Artifacts as Observable Traces for LLM-Based Program Repair
Rikkyo University(立教大学)
本文提出THEMIS,一种通过外部化需求到修复过程的可观察工件来支持仓库级程序修复的工作流,实验表明其能有效提升修复效果并支持跨阶段审计。
2026-09-15 cs.AI cs.SE
When Models Edit Too Much: On the Fidelity of Minimal Code Edits
National University of Singapore(新加坡国立大学)
该研究针对大型语言模型代码编辑中的过度编辑问题,构建评估框架,发现保留指令可缓解该问题,且强化学习能更好地学习最小编辑,明确编辑保真度是代码修复质量的独特维度。
2026-10-21 cs.AI cs.CL cs.SE
Repairing Bugs in Python Assignments Using Large Language Models
Yale University(耶鲁大学);Microsoft(微软)
作为学习过程的一部分,学生经常在介绍性编程作业中犯错误。不幸的是,为这些错误提供自定义修复可能需要大量的时间和精力,从课堂教师。自动程序修复(APR)技术可用于合成这样的修复。先前的工作已经探索了在教育领域中使用符号和神经技术进行APR。这两种方法都需要大量的工程努力或大量的数据和培训。我们建议使用一个经过代码训练的大语言模型,比如Codex,来构建一个APR系统--MMAPR--用于介绍Python编程作业。我们的系统可以修复语法和语义错误相结合的多模态提示,迭代查询,基于测试用例的选择少数镜头,和程序分块。我们在286个真实的学生程序上评估了MMAPR,并将其与通过结合最先进的Python语法修复引擎BIFI和最先进的Python语义修复引擎Refactory构建的基线进行了比较。我们发现,MMAPR可以修复更多的程序,并产生更小的补丁平均。
2022-09-29 cs.AI cs.SE
Mining Software Repair Models for Reasoning on the Search Space of Automated Program Fixing
本文通过分析软件仓库中数以千计的错误修复事务来理解错误修复的本质。然后,它将这些学习到的知识放在自动程序修复的上下文中。我们给出了大量的经验结果,在大规模和细粒度的抽象语法树差异的性质,人类的错误修复。我们建立了数学推理的搜索空间的自动修复和时间,通过应用我们的方法对14个存储库的Java软件和89,993版本事务,我们表明,并非所有的概率修复模型是等价的。
2013-11-14 cs.SE
Workflows vs Agents for Code Translation
Code Metal
研究比较了工作流与代理方法在MATLAB到HDL代码翻译中的效果,发现代理方法在语法修复和提升模拟覆盖率方面表现更优。
2025-12-15 cs.AI cs.SE
Tea: Program Repair Using Neural Network Based on Program Information Attention Matrix
Microsoft Asia-Pacific Technology Company Ltd.(微软亚太科技有限公司);University of Chinese Academy of Sciences(中国科学院大学);Institute of Software, Chinese Academy of Sciences(中国科学院软件研究所)
机器学习(ML)驱动的自然语言处理(NLP)的进步为软件程序的自动错误修复指明了一个有希望的方向,因为修复有错误的程序可以转换为翻译任务。虽然软件程序包含比一维自然语言文档更丰富的信息,但使用ML驱动的NLP技术进行自动程序修复的开创性工作只考虑了有限的此类信息。我们假设,更全面的软件程序的信息,如果适当利用,可以提高ML驱动的NLP方法在修复软件程序的有效性。作为证明这一假设的第一步,我们提出了一个统一的表示来捕捉软件程序的语法,数据流和控制流方面,并设计了一种方法来使用这样的表示来指导Transformer模型从NLP更好地理解和修复错误的程序。我们的初步实验证实,更全面的软件程序使用的信息,更好的ML驱动的NLP技术可以执行在这些程序中修复错误。
2021-07-17 cs.AI cs.SE
BoostAPR: Boosting Automated Program Repair via Execution-Grounded Reinforcement Learning with Dual Reward Models
State Key Laboratory of Networking and Switching Technology(网络与交换技术国家重点实验室);Beijing University of Posts and Telecommunications(北京邮电大学);University of Luxembourg(卢森堡大学)
BoostAPR通过基于执行的强化学习与双奖励模型,解决程序修复中反馈稀疏和奖励粗粒度的问题,实现40.7%的SWE-bench Verified准确率,展现强大的跨语言泛化能力。
2026-09-21 cs.AI cs.SE
Fix Bugs with Transformer through a Neural-Symbolic Edit Grammar
Iowa State University(爱荷华州立大学);AWS AI(AWS人工智能)
我们介绍了NSEdit(神经符号编辑),一种新的基于transformer的代码修复方法。只给出包含bug的源代码,NSEdit预测可以修复bug的编辑序列。编辑语法被公式化为正则语言,并且Transformer将其用作神经符号脚本接口来生成编辑程序。我们修改Transformer并添加一个指针网络来选择编辑位置。训练重排序器的集合以重排序由束搜索生成的编辑序列。我们对验证集上的重排序器进行微调,以减少过度拟合。NSEdit在各种代码修复数据集上进行了评估,并在CodeXGLUE基准测试的Tufano小数据集上实现了新的最先进的精度($24.04\%$)。NSEdit在程序因包而异以及有bug的程序是具体的情况下执行稳健。我们对我们的方法进行了详细的分析,并证明了每个组件的有效性。
2022-04-13 cs.AI cs.LG cs.PL
Break-It-Fix-It: Unsupervised Learning for Program Repair
Stanford University(斯坦福大学)
我们考虑修复任务:给定一个批评者(例如,编译器),其评估输入的质量,目标是训练将坏示例(例如,具有语法错误的代码)转换为好的代码(例如,没有语法错误的代码)。现有的工作通过使用统计学破坏好的示例来创建由(坏的,好的)对组成的训练数据(例如,丢弃令牌)。然而,在这种合成生成的数据上训练的修复者不能很好地外推到错误输入的真实分布。为了弥合这一差距,我们提出了一种新的训练方法,打破它,修复它(BIFI),它有两个关键的想法:(i)我们使用的评论家检查一个真正的坏输入修复器的输出,并添加良好的(固定)输出的训练数据,以及(ii)我们训练断路器从好代码生成现实的坏代码。基于这些想法,我们迭代地更新断路器和固定器,同时结合使用它们来生成更多的配对数据。我们在两个代码修复数据集上评估BIFI:GitHub-Python,我们引入的一个新数据集,目标是修复带有AST解析错误的Python代码; DeepFix,目标是修复带有编译器错误的C代码。BIFI优于现有方法,在GitHub-Python上获得90.5%的修复准确率(+28.5%),在DeepFix上获得71.7%(+5.6%)。值得注意的是,BIFI不需要任何标记数据;我们希望它将成为各种修复任务的无监督学习的一个强有力的起点。
2021-06-22 cs.CL cs.LG cs.SE
FixMiner: Mining Relevant Fix Patterns for Automated Program Repair
本研究提出FixMiner方法,通过对补丁原子变更的迭代聚类、利用富编辑脚本的多树表示挖掘可复用修复模式,集成到PARFixMiner后可修复Defects4J中26个漏洞,合理补丁正确率达81%。
2019-09-30 cs.SE
TraceFixer: Execution Trace-Driven Program Repair
本文提出 TraceFixer,利用运行时执行轨迹和偏离点的期望程序状态训练神经程序修复模型,以预测源代码编辑;实验显示其显著提升 Python 单行缺陷修复效果,并成功修复 20 个真实缺陷中的 10 个。
2023-04-25 cs.SE
Automatic Repair and Type Binding of Undeclared Variables using Neural Networks
Iowa State University(爱荷华州立大学)
深度学习已被用于程序分析中,用于使用软件缺陷数据集预测隐藏的软件缺陷,使用生成对抗网络预测安全漏洞,以及通过学习程序代码上经过训练的神经机器翻译来识别语法错误。然而,所有这些方法要么需要缺陷数据集,要么需要可执行的无缺陷源代码来训练深度学习模型。我们的神经网络模型既没有使用任何缺陷数据集进行训练,也没有使用无缺陷的编程源代码,而是使用抽象树(AST)的结构语义细节进行训练,其中每个节点代表源代码中出现的一个构造。这个模型的实现是为了修复最常见的语义错误之一,比如未声明的变量错误,以及在程序编译之前推断它们的类型信息。通过该方法,在1059个程序的Prutor数据集上,只有未声明变量错误的程序,该模型能正确定位和识别81%的程序,并能正确推断出80%的程序类型。
2019-07-14 cs.CL cs.FL cs.LG
Semantic Code Repair using Neuro-Symbolic Transformation Networks
Google(谷歌);Google DeepMind(谷歌DeepMind);Microsoft Research(微软研究院)
我们研究语义代码修复的问题,它可以被广泛地定义为自动修复源代码中的非语法错误。过去语义代码修复中的大多数工作都假设可以访问单元测试,可以根据这些测试来验证候选修复。相比之下,这里的目标是开发一个强大的统计模型,以准确地预测错误位置和确切的修复,而无需访问有关程序预期正确行为的信息。实现这样一个目标需要一个健壮的上下文修复模型,我们训练一个大的语料库的真实世界的源代码,已与合成注入的错误。我们的框架采用了两个阶段的方法,首先是一个大的修复候选人生成的规则为基础的处理器,然后这些候选人进行了评分的统计模型,使用一种新的神经网络架构,我们称之为共享,专业化,竞争。具体来说,该架构(1)使用RNN在抽象语法树上生成源代码的共享编码,(2)使用专用网络模块对每个候选修复进行评分,以及(3)然后将这些评分标准化在一起,以便它们可以在可比的概率空间中相互竞争。我们在从GitHub收集的真实世界测试集上评估我们的模型,其中包含四种常见的bug。我们的模型能够预测准确的正确修复41%的时间与一个单一的猜测,相比之下,13%的准确率为注意序列到序列模型。
2017-10-30 cs.AI cs.PL cs.SE
Semantic Evolution over Populations for LLM-Guided Automated Program Repair
University of Texas at Dallas(达拉斯德州大学);FPT Software AI Center(FPT软件人工智能中心);Hanoi University of Science and Technology(河内科技大学)
本文提出EvolRepair框架,通过语义进化算法提升LLM引导的自动程序修复效果,解决修复假设多样性、语义相关修复家族识别等挑战。
2026-04-02 cs.SE
Repair Is Nearly Generation: Multilingual Program Repair with LLMs
Microsoft(微软)
大多数程序员在编写代码时都会犯错误。这些错误中有一些很小,只需要对原始程序进行很少的编辑--这类错误最近被称为“最后一英里错误”。这些错误打断了有经验的开发人员的流程,并可能使新手程序员感到困惑。针对这类错误的现有自动修复技术是特定于语言的,并且不容易转移到新的语言。转移符号方法需要大量的工程,神经方法需要数据和再训练。我们介绍了RING,一个多语言修复引擎,由一个大语言模型训练的代码(LLMC),如Codex。这种多语言引擎实现了编程辅助的翻转模型,与传统的代码建议技术相比,程序员编写代码,人工智能辅助建议修复。从程序员手动修复错误的方式中获得灵感,我们展示了一种基于修复的策略,该策略将修复概念化为本地化,转换和候选人排名,可以以最小的努力成功地修复多种语言的程序。我们提出了这样一个多语言修复引擎的第一个结果,通过评估6种不同的语言,并比较特定语言的修复引擎的性能。我们表明,RING可以优于这些语言中的三种语言的特定语言的修复引擎。
2022-12-05 cs.AI cs.PL cs.SE
CURE: Code-Aware Neural Machine Translation for Automatic Program Repair
Purdue University(普渡大学);University of Waterloo(滑铁卢大学)
自动程序修复(APR)是提高软件可靠性的关键.最近,神经机器翻译(NMT)技术已被用于自动修复软件错误。虽然这些方法很有前途,但有两个主要的局限性。它们的搜索空间通常不包含正确的修复,并且它们的搜索策略忽略了软件知识,例如严格的代码语法。由于这些限制,现有的基于NMT的技术表现不如最好的基于模板的方法。我们提出了CURE,一种新的基于NMT的APR技术,具有三个主要的新颖性。首先,CURE在大型软件代码库上预训练程序设计语言(PL)模型,以便在APR任务之前学习类似于开发人员的源代码。其次,CURE设计了一个新的代码感知搜索策略,通过关注可编译的补丁和长度接近错误代码的补丁来找到更多正确的修复。最后,CURE使用子字标记化技术来生成包含更多正确修复的较小搜索空间。我们对两个广泛使用的基准测试的评估表明,CURE正确地修复了57个Defects4J错误和26个菜错误,在这两个基准测试上优于所有现有的APR技术。
2021-09-02 cs.AI cs.LG cs.SE
Automated Program Repair of Uncompilable Student Code
North Carolina State University(北卡罗来纳州立大学)
本研究利用大型语言模型修复不可编译的学生代码,以保留其结构意图,从而提升学生建模和知识追踪的分析能力。
2025-12-23 cs.AI cs.CY cs.SE
Automated Repair of Programs from Large Language Models
像Codex这样的大语言模型已经显示出为许多编程任务生成代码的能力。然而,现有模型的成功率很低,特别是对于复杂的编程任务。原因之一是语言模型缺乏对程序语义的认识,导致程序不正确,甚至不能编译。在本文中,我们系统地研究了自动程序修复(APR)技术是否可以修复LeetCode竞赛中由语言模型产生的错误解决方案。我们的目标是研究APR技术是否可以提高可靠性的代码产生的大语言模型。我们的研究显示:(1)自动生成的代码与人工制作的解决方案共享常见的编程错误,这表明APR技术可能具有修复自动生成的代码的潜力;(2)给定由统计错误定位方法提供的错误位置信息,新发布的Codex编辑模式(支持编辑代码)在修复错误解决方案方面类似于或优于现有的Java修复工具TBar和Codder。通过分析这些工具产生的实验结果,我们提供了几个建议:(1)增强APR工具,以超越补丁空间的限制(例如,引入更灵活的错误定位)是期望的;(2)由于大语言模型可以通过在更多数据上训练来导出更多修复模式,未来的APR工具可以将焦点从添加更多修复模式转移到基于合成/语义的方法,(3)语言模型与APR的组合以策展补丁成分是值得研究的。
2023-01-02 cs.SE
ScratchEval : A Multimodal Evaluation Framework for LLMs in Block-Based Programming
University of Waterloo(滑铁卢大学);Stanford University(斯坦福大学)
ScratchEval是首个用于评估LLM在Scratch块式编程中修复能力的可执行基准,通过多层协议测量功能正确性、修复质量和解释质量,支持领域微调和泛化研究。
2026-01-31 cs.SE
Knowledge-Enhanced Program Repair for Data Science Code
针对数据科学领域LLM生成的缺陷代码,本文提出知识增强修复方法DSrepair,结合知识图谱RAG与AST错误定位,在DS-1000数据集上显著优于现有基线,同时提升修复效率。
2025-02-13 cs.SE
Less Training, More Repairing Please: Revisiting Automated Program Repair via Zero-shot Learning
本文提出零样本APR工具AlphaRepair,直接利用预训练CodeBERT依据上下文预测正确代码,无需缺陷修复训练数据,并在Defects4J上显著优于现有基线。
2024-12-05 cs.SE
From Blind Edits to Verified Repair: Building Trustworthy User-Side LLM Agents for Web Accessibility
University of Southern Denmark(南丹麦大学)
本研究构建了用户端LLM智能体的三个核心模块,通过双条件协议诊断盲编辑的缺陷,再结合验证修复工具实现了网页可访问性的可信修复,相关资源已公开。
2026-08-27 cs.HC cs.SE
TraceCAD: Trace-Guided Repair for Agentic CAD Generation
TraceCAD是一种用于智能体CAD生成的轨迹引导修复方法,通过引入持久状态等机制提升了CAD生成的几何质量与修复可靠性,在DeepCAD基准测试中取得了良好效果。
2026-11-05 cs.AI cs.GR cs.SE
EviACT: An Evidence-to-Action Framework for Agentic Program Repair
LIACS, Leiden University(莱顿大学 LIACS);CLCG, University of Groningen(格罗宁根大学 CLCG)
提出EviACT框架,通过协调三个证据驱动的防护栏(检索支架、编译门、测试驱动门)来提升智能体程序修复的定位、生成和验证效率,在多个基准上修复率提升1.6-6.0个百分点,API成本降低70.1-88.6%。
2026-10-27 cs.SE
Automated Classification of Overfitting Patches with Statically Extracted Code Features
自动程序修复(APR)旨在降低手动修复软件缺陷的成本。然而,APR会产生大量的过拟合补丁,这些补丁除了使测试通过之外,不能正确修复缺陷。本文提出了一种新的过拟合补丁检测系统称为ODS来评估APR补丁的正确性。ODS首先静态比较修补程序和有缺陷的程序,以便在抽象语法树(AST)级别提取代码特征。然后,ODS使用具有捕获的代码特征和补丁正确性标签的监督学习来自动学习概率模型。然后,学习的ODS模型可以最终应用于对新的和看不见的程序修复补丁进行分类。我们进行了一个大规模的实验,以评估ODS的补丁正确性分类的基础上,从缺陷4J,Bugs.jar和熊基准的10,302补丁的有效性。实验结果表明,ODS对26个项目中71.9%的程序修复补丁进行了正确分类,提高了程序修复补丁的分类水平,具有一定的实用性,可以作为一种后处理方法对不同APR系统生成的补丁进行分类。
2021-08-06 cs.SE
Harnessing Evolution for Multi-Hunk Program Repair
尽管在过去的十年中,自动程序修复(APR)技术取得了重大进展,但实际部署仍然是一个难以捉摸的目标。在这方面的重要挑战之一是当前APR技术一般不能产生需要在多个位置编辑的补丁,即,多块补丁在这项工作中,我们提出了一种新的APR技术,推广单大块修复技术,包括一个重要的一类多大块的错误,即错误,可能需要应用一个基本上类似的补丁在一些位置。我们将这些修复位置称为进化兄弟姐妹--在相似的环境中实例化的相似代码,预计会经历相似的变化。我们提出的方法的核心是分析,以准确地识别一组进化的兄弟姐妹,对于一个给定的错误。这个分析利用了三个不同的信息源,即测试套件谱,一个新的代码相似性分析,以及项目的修订历史。发现的兄弟姐妹然后以类似的方式同时修复。我们在一个名为Hercules的工具中实例化了这种技术,并证明它能够正确修复Defects 4J数据集中的49个错误,这是迄今为止任何单独的APR技术中最高的。这包括15个多大块的错误和13个迄今为止还没有被任何其他技术修复的错误。
2019-06-21 cs.SE
Learning Structural Edits via Incremental Tree Transformations
The Ohio State University(俄亥俄州立大学);Carnegie Mellon University(卡内基梅隆大学)
虽然大多数神经生成模型在一次通过中生成输出,但人类的创造过程通常是迭代构建和改进的过程。最近的工作已经提出了编辑过程的模型,但这些模型主要集中在编辑顺序数据和/或仅对单个编辑过程建模。在本文中,我们提出了一个通用的结构化数据增量编辑模型(即,“结构编辑”)。特别地,我们专注于树结构的数据,以计算机程序的抽象语法树作为我们的规范例子。我们的编辑器学习迭代生成树编辑(例如,删除或添加子树),并将它们应用于部分编辑的数据,从而整个编辑过程可以被公式化为连续的、递增的树变换。为了直接展示建模树编辑的独特优势,我们进一步提出了一种新的编辑编码器,用于学习表示编辑,以及一种模仿学习方法,使编辑器更加健壮。我们评估我们提出的编辑器上的两个源代码编辑数据集,结果表明,与建议的编辑编码器,我们的编辑器显着提高了准确性比以前的方法,直接生成编辑的程序在一个通行证。最后,我们证明,训练我们的编辑器模仿专家,并动态地纠正错误,可以进一步提高其性能。
2021-03-05 cs.LG cs.SE
Specification Vibing for Automated Program Repair
The University of Manchester(曼彻斯特大学);Mohamed bin Zayed University of Artificial Intelligence(穆罕默德·本·扎耶德人工智能大学)
VibeRepair通过行为规范修复替代传统代码编辑,提升自动化程序修复的准确性和泛化能力。
2026-02-09 cs.SE
Characterizing Multi-Hunk Patches: Divergence, Proximity, and LLM Repair Challenges
University of British Columbia(不列颠哥伦比亚大学)
针对现有自动化修复研究多聚焦单代码块场景的不足,本研究构建多代码块补丁数据集HUNK4J,提出代码块差异性指标与空间邻近性分类,通过实证实验揭示大语言模型在高分散多代码块缺陷修复上的能力缺口。
2025-11-17 cs.SE
Revisiting Evolutionary Program Repair via Code Language Model
本文提出ARJA-CLM方法,将多目标进化算法与代码语言模型结合,并采用上下文感知的提示构建策略,有效解决了Java项目中多点错误修复的难题,在Defects4J等基准上表现优异。
2024-08-26 cs.SE
VulKey: Automated Vulnerability Repair Guided by Domain-Specific Repair Patterns
The Chinese University of Hong Kong(香港中文大学);Sun Yat-sen University(中山大学)
VulKey通过层级化抽象专家知识指导补丁生成,实现更高泛化性和语义丰富性,其在PrimeVul数据集上达到31.5%的修复准确率,超越现有方法。
2026-06-27 cs.CR cs.SE
Flexible Control Flow Graph Alignment for Delivering Data-Driven Feedback to Novice Programming Learners
本文提出一种基于控制流图的灵活对齐算法,扩展开源方法CLARA以处理真实入门程序,在Codeforces的20个热门问题上将修复成功率从5%提升至46%。
2024-01-02 cs.SE
Where to Look When Repairing Code? Comparing the Attention of Neural Models and Developers
本研究首次对比人类开发者与两种神经修复模型的注意力分布,发现人类采用混合注意力策略且修复成功率远高于模型,为改进神经修复模型提供了行为学启示。
2023-05-12 cs.SE
An Analysis of the Automatic Bug Fixing Performance of ChatGPT
为了支持软件开发人员发现和修复软件错误,已经引入了几种自动程序修复技术。给定一个测试套件,标准方法通常要么合成一个修复,要么导航一个软件编辑的搜索空间来找到测试套件通过的变体。最近的程序修复方法基于深度学习方法。ChatGPT是这些新方法中的一种,它主要不是用于自动程序修复,但仍然适用于它。然而,到目前为止,ChatGPT的bug修复性能还不清楚。因此,在本文中,我们评估ChatGPT的标准错误修复基准集,菜错误,并比较性能与其他几种方法的结果在文献中报道。我们发现ChatGPT的错误修复性能与常见的深度学习方法CoCoNut和Codex相比具有竞争力,并且明显优于标准程序修复方法的结果。与以前的方法相比,ChatGPT提供了一个对话系统,通过该系统,可以输入特定输入的预期输出或观察到的错误消息。通过向ChatGPT提供这样的提示,它的成功率可以进一步提高,修复了40个错误中的31个,超过了最先进的水平。
2023-01-20 cs.SE
PatchRecall: Patch-Driven Retrieval for Automated Program Repair
PatchRecall通过结合代码库检索与历史检索策略,在提升召回率的同时保持简洁,实验表明其在SWE-Bench上实现了更高的召回率且不显著增加检索文件数量,从而提升自动化程序修复效果。
2026-04-12 cs.CL cs.SE
FastFixer: An Efficient and Effective Approach for Repairing Programming Assignments
针对LLM修复编程作业时定位编辑不准且自回归推理较慢的问题,本文提出FastFixer,通过面向修复的微调与任务定制推理加速,实现修复效果提升20.46%、推理加速16.67倍。
2024-10-11 cs.CY cs.SE
Automated Repair of Ambiguous Problem Descriptions for LLM-Based Code Generation
针对LLM代码生成中模糊问题描述导致错误的问题,提出SpecFix工具,通过分解任务为解读修复与对比规格推断,自动修复模糊描述,提升多个LLM在基准上的Pass@1并实现跨模型迁移。
2025-09-24 cs.SE
Hype Meets Reality: Large Language Models as Mutators in Search-based Automated Program Repair of Simulink-Stateflow Models
Mondragon University(蒙德拉贡大学)
本文以Simulink/Stateflow建模的CPS为研究对象,扩展FlowRepair方法用LLM生成的变异替换部分算子,受控实验发现该方法大幅降低修复性能,分析指出盲目集成LLM到基于搜索的APR存在根本局限,需发展混合方法。
2026-08-21 cs.SE
Anchored Self-Play for Code Repair
研究代码修复能力,提出生成器-修复器自博弈,通过强化学习训练单个模型生成并修复错误,引入BugSourceBench测试泛化性,发现问题后提出锚定自博弈,提高修复率。
2026-07-07 cs.CL cs.SE
DRReduce: Enhancing Syntax-Guided Program Reduction with Dependency Reconstruction
Nanjing University of Science and Technology(南京理工大学);Monash University(蒙纳士大学);School of Computer Science, Wuhan University(武汉大学计算机学院)
本文提出DRReduce框架,通过在语法引导缩减中加入轻量级的语义层依赖重建,修复因删除而断裂的程序依赖,从而保持中间程序的语义有效性并提高属性检查器的接受率。
2026-05-19 cs.PL cs.SE