神经程序修复的句法引导编辑解码器
文章提出一种基于深度学习技术的自动程序修复方法 KNOD,其利用了领域知识来指导补丁生成,并在三个广泛使用的基准测试中越过了所有现有的 APR 工具。
Feb, 2023
采用非自回归方法 (NAR) 的自动程序修复 (APR) 技术 (NARRepair) 可在并行方式下输出目标代码,从而避免大量的推理延迟,同时提高修复精度。
Jun, 2024
自动程序修复是减少开发人员手动调试努力并提高软件可靠性的关键。本文提出了一种新颖的检索增强型修补生成框架(RAP-Gen),通过明确利用从以前的错误修复对的代码库中检索出的相关修复模式来简化参数模型的负担,进而自动化程序修复过程。实验结果表明,RAP-Gen 在所有基准测试中显著优于先前的最先进方法,例如在 818 个 Defects4J 错误上修复了 15 个更多的错误。
Sep, 2023
使用 Codex 这样的大型编程语言模型,在多模式提示、迭代式查询、基于测试用例的少样本选择和程序块组合的帮助下,构建了一个自动编程修复 (MMAPR) 系统来解决学生在 Python 编程课程中常见的语法和语义错误问题,并与已有基线方案相比较得出了较好的结果。
Sep, 2022
本文研究了一种新的适用于程序修复的方法,发现目标对齐对于充分利用 LLM 的预训练能力是关键的,并通过直接调试替代传统的定位 - 修复工作流程,提出了一种新的思路来利用 LLMs 进行 APR。
Apr, 2024
本文首次研究并比较了基于大型代码语言模型和基于深度学习的自动化程序修复技术在 Java 漏洞修复方面的能力,结果表明现有的语言模型和程序修复技术修复的 Java 漏洞很少,呼吁创新提高 Java 漏洞修复的自动化程度。
May, 2023
提出了一种名为 CURE 的新型自动程序修复技术,通过预先训练编程语言模型和设计新的基于代码的搜索策略来解决现有神经机器翻译方法存在的限制,CURE 技术在两个广泛使用的基准测试中表现出了优异的修复效果。
Feb, 2021
通过提供一个可完全执行的、由 450,000 个错误 / 修复的代码对组成的数据集及其测试 / 编译基础设施和详细的 bug 类型标签,本文旨在促进神经程序修复技术向可执行代码表示转型,提高基于执行的特征的使用,并通过包括多种不同语言的数据集,平衡当前 Automated Program Repair 数据集和基准测试方向中 Java 语言的主导地位。
Apr, 2023
DeepDebug 是数据驱动的程序修复方法,其可以从 GitHub 代码库中挖掘的实际 Java 方法中学习检测和修复错误的方法。通过将错误修补构建为序列到序列的学习任务,它实现了两个步骤,即去噪预训练和有监督的微调。本方法显示出比以前的工作更好的异常检测能力,并且可以使用通用解析器进行语言无关的方法。
Apr, 2021