Repair Is Nearly Generation: Multilingual Program Repair with LLMs

08/24/2022
by   Harshit Joshi, et al.
0

Most programmers make mistakes when writing code. Some of these mistakes are small and require few edits to the original program – a class of errors recently termed last mile mistakes. These errors break the flow for experienced developers and can stump novice programmers. Existing automated repair techniques targeting this class of errors are language-specific and do not easily carry over to new languages. Transferring symbolic approaches requires substantial engineering and neural approaches require data and retraining. We introduce RING, a multilingual repair engine powered by a large language model trained on code (LLMC) such as Codex. Such a multilingual engine enables a flipped model for programming assistance, one where the programmer writes code and the AI assistance suggests fixes, compared to traditional code suggestion technology. Taking inspiration from the way programmers manually fix bugs, we show that a prompt-based strategy that conceptualizes repair as localization, transformation, and candidate ranking, can successfully repair programs in multiple languages with minimal effort. We present the first results for such a multilingual repair engine by evaluating on 6 different languages and comparing performance to language-specific repair engines. We show that RING can outperform language-specific repair engines for three of these languages.

READ FULL TEXT
research
07/24/2022

Neurosymbolic Repair for Low-Code Formula Languages

Most users of low-code platforms, such as Excel and PowerApps, write pro...
research
08/25/2022

Social Diversity for ATL Repair

Model transformations play an essential role in the Model-Driven Enginee...
research
09/29/2022

Repairing Bugs in Python Assignments Using Large Language Models

Students often make mistakes on their introductory programming assignmen...
research
09/01/2023

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

During Automated Program Repair (APR), it can be challenging to synthesi...
research
02/27/2021

Bounded Exhaustive Search of Alloy Specification Repairs

The rising popularity of declarative languages and the hard to debug nat...
research
07/09/2021

Sirius: Static Program Repair with Dependence Graph-Based Systematic Edit Patterns

Software development often involves systematic edits, similar but nonide...

Please sign up or login with your details

Forgot password? Click here to reset