Program Repair

34 papers with code • 3 benchmarks • 8 datasets

Task of teaching ML models to modify an existing program to fix a bug in a given code.

Most implemented papers

Break-It-Fix-It: Unsupervised Learning for Program Repair

michiyasunaga/bifi 11 Jun 2021

To bridge this gap, we propose a new training approach, Break-It-Fix-It (BIFI), which has two key ideas: (i) we use the critic to check a fixer's output on real bad inputs and add good (fixed) outputs to the training data, and (ii) we train a breaker to generate realistic bad code from good code.

A Syntax-Guided Edit Decoder for Neural Program Repair

zysszy/TreeGen 15 Jun 2021

Our results show that Recoder repairs 53 bugs on Defects4J v1. 2, which achieves 21. 4% improvement over the previous state-of-the-art approach for single-hunk bugs (TBar).

TFix: Learning to Fix Coding Errors with a Text-to-Text Transformer

eth-sri/TFix ICML 2021

The problem of fixing errors in programs has attracted substantial interest over the years.

InvAASTCluster: On Applying Invariant-Based Program Clustering to Introductory Programming Assignments

pmorvalho/invaastcluster 28 Jun 2022

Due to the vast number of students enrolled in Massive Open Online Courses (MOOCs), there has been an increasing number of automated program repair techniques focused on introductory programming assignments (IPAs).

Invalidator: Automated Patch Correctness Assessment via Semantic and Syntactic Reasoning

thanhlecongg/Invalidator 3 Jan 2023

In case our approach fails to determine an overfitting patch based on invariants, INVALIDATOR utilizes a trained model from labeled patches to assess patch correctness based on program syntax.

KNOD: Domain Knowledge Distilled Tree Decoder for Automated Program Repair

lin-tan/knod 3 Feb 2023

KNOD has two major novelties, including (1) a novel three-stage tree decoder, which directly generates Abstract Syntax Trees of patched code according to the inherent tree structure, and (2) a novel domain-rule distillation, which leverages syntactic and semantic rules and teacher-student distributions to explicitly inject the domain knowledge into the decoding procedure during both the training and inference phases.

How Effective Are Neural Networks for Fixing Security Vulnerabilities

lin-tan/llm-vul 29 May 2023

The results call for innovations to enhance automated Java vulnerability repair such as creating larger vulnerability repair training data, tuning LLMs with such data, and applying code simplification transformation to facilitate vulnerability repair.

Graph Neural Networks For Mapping Variables Between Programs -- Extended Version

pmorvalho/ecai23-gnns-for-mapping-variables-between-programs 24 Jul 2023

Typically, in order to compare two programs, a relation between both programs' sets of variables is required.

Copiloting the Copilots: Fusing Large Language Models with Completion Engines for Automated Program Repair

ise-uiuc/Repilot 1 Sep 2023

Therefore, we propose Repilot, a general code generation framework to further copilot the AI "copilots" (i. e., LLMs) by synthesizing more valid patches during the repair process.

Out of Context: How important is Local Context in Neural Program Repair?

giganticode/out_of_context_paper_data 8 Dec 2023

Our results indicate that overall repair success increases with the size of the local context (albeit not for all bug types) and confirm the common practice that roughly 50-60% of the input window should be used for context leading the bug.