mlsanityData to 14 Oct 2026

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

arXiv 2106.06600 ↗First posted 11 Jun 2021cs.LG cs.CL cs.SEcited by 71

Not on the map. Why?

Abstract (arXiv)

We consider repair tasks: given a critic (e.g., compiler) that assesses the quality of an input, the goal is to train a fixer that converts a bad example (e.g., code with syntax errors) into a good one (e.g., code with no syntax errors). Existing works create training data consisting of (bad, good) pairs by corrupting good examples using heuristics (e.g., dropping tokens). However, fixers trained on this synthetically-generated data do not extrapolate well to the real distribution of bad inputs. 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. Based on these ideas, we iteratively update the breaker and the fixer while using them in conjunction to generate more paired data. We evaluate BIFI on two code repair datasets: GitHub-Python, a new dataset we introduce where the goal is to repair Python code with AST parse errors; and DeepFix, where the goal is to repair C code with compiler errors. BIFI outperforms existing methods, obtaining 90.5% repair accuracy on GitHub-Python (+28.5%) and 71.7% on DeepFix (+5.6%). Notably, BIFI does not require any labeled data; we hope it will be a strong starting point for unsupervised learning of various repair tasks.

Key facts. Cited by 71 papers in the map (data through 14 Oct 2026). Builds on 49 of its 80 references that are in the map. First posted on arXiv 11 Jun 2021.

Builds on

49 of 80 references.

References · 49

  1. 2017Attention Is All You Needcited by 60,361
  2. 2014Adam: A Method for Stochastic Optimizationcited by 37,240
  3. 2019BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehensioncited by 5,893
  4. 2014Unsupervised Domain Adaptation by Backpropagationcited by 1,917
  5. 2019MixMatch: A Holistic Approach to Semi-Supervised Learningcited by 1,391
  6. 2020WILDS: A Benchmark of in-the-Wild Distribution Shiftscited by 1,375
  7. 2018Moment Matching for Multi-Source Domain Adaptationcited by 1,331
  8. 2016Deep CORAL: Correlation Alignment for Deep Domain Adaptationcited by 1,200
  9. 2017Deep Hashing Network for Unsupervised Domain Adaptationcited by 1,188
  10. 2018Spider: A Large-Scale Human-Labeled Dataset for Complex and Cross-Domain Semantic Parsing and Text-to-SQL Taskcited by 1,139
  11. 2017CyCADA: Cycle-Consistent Adversarial Domain Adaptationcited by 1,082
  12. 2019Unsupervised Data Augmentation for Consistency Trainingcited by 1,060
37 more
  1. 2016Playing for Data: Ground Truth from Computer Gamescited by 818
  2. 2015Improving Neural Machine Translation Models with Monolingual Datacited by 788
  3. 2014Deep Speech: Scaling up end-to-end speech recognitioncited by 354
  4. 2017Data Augmentation Generative Adversarial Networkscited by 278
  5. 2017Unsupervised Machine Translation Using Monolingual Corpora Onlycited by 273
  6. 2020Unsupervised Translation of Programming Languagescited by 263
  7. 2017Style Transfer from Non-Parallel Text by Cross-Alignmentcited by 248
  8. 2020Selective Question Answering under Domain Shiftcited by 238
  9. 2017Unsupervised Neural Machine Translationcited by 149
  10. 2020Understanding Self-Training for Gradual Domain Adaptationcited by 149
  11. 2018SequenceR: Sequence-to-Sequence Learning for End-to-End Program Repaircited by 145
  12. 2019SParC: Cross-Domain Semantic Parsing in Contextcited by 144
  13. 2018Phrase-Based & Neural Unsupervised Machine Translationcited by 138
  14. 2016Data Recombination for Neural Semantic Parsingcited by 111
  15. 2020Graph-based, Self-Supervised Program Repair from Diagnostic Feedbackcited by 94
  16. 2018Learning Multimodal Graph-to-Graph Translation for Molecular Optimizationcited by 88
  17. 2019A Discrete Hard EM Approach for Weakly Supervised Question Answeringcited by 78
  18. 2020Grounded Adaptation for Zero-shot Executable Semantic Parsingcited by 76
  19. 2018SyntaxSQLNet: Syntax Tree Networks for Complex and Cross-DomainText-to-SQL Taskcited by 74
  20. 2018Unsupervised Text Style Transfer using Language Models as Discriminatorscited by 70
  21. 2018DeepBugs: A Learning Approach to Name-based Bug Detectioncited by 65
  22. 2019Test-Time Training with Self-Supervision for Generalization under Distribution Shiftscited by 59
  23. 2018Unsupervised Statistical Machine Translationcited by 51
  24. 2020In-N-Out: Pre-Training and Self-Training using Auxiliary Information for Out-of-Distribution Robustnesscited by 50
  25. 2017From Language to Programs: Bridging Reinforcement Learning and Maximum Marginal Likelihoodcited by 41
  26. 2019Getafix: Learning to Fix Bugs Automaticallycited by 41
  27. 2019Neural Program Repair by Jointly Learning to Localize and Repaircited by 40
  28. 2020AutoQA: From Databases To QA Semantic Parsers With Only Synthetic Training Datacited by 29
  29. 2019Learning to Fix Build Errors with Graph2Diff Neural Networkscited by 26
  30. 2017Dynamic Neural Program Embedding for Program Repaircited by 23
  31. 2017Robust Multilingual Part-of-Speech Tagging via Adversarial Trainingcited by 21
  32. 2018Style Transfer as Unsupervised Machine Translationcited by 19
  33. 2020Improving Molecular Design by Stochastic Iterative Target Augmentationcited by 18
  34. 2020Patching as Translation: the Data and the Metaphorcited by 18
  35. 2016sk_p: a neural program corrector for MOOCscited by 10
  36. 2018Deep Reinforcement Learning for Programming Language Correctioncited by 4
  37. 2019Learning Autocomplete Systems as a Communication Gamecited by 4

Built on by

Cited by year (2026 to 14 Oct)

Citing papers per year: 2021: 2; 2022: 16; 2023: 22; 2024: 14; 2025: 10; 2026: 7.

71 papers.

Sort:

By area:

  1. 2022PaLM: Scaling Language Modeling with Pathwayscited by 5,326
  2. 2023Code Llama: Open Foundation Models for Codecited by 2,139
  3. 2023Teaching Large Language Models to Self-Debugcited by 988
  4. 2022InCoder: A Generative Model for Code Infilling and Synthesiscited by 498
  5. 2022Generating Sequences by Learning to Self-Correctcited by 277
  6. 2024When Can LLMs Actually Correct Their Own Mistakes? A Critical Survey of Self-Correction of LLMscited by 240
  7. 2023Is Self-Repair a Silver Bullet for Code Generation?cited by 197
  8. 2023OctoPack: Instruction Tuning Code Large Language Modelscited by 189
  9. 2023Baldur: Whole-Proof Generation and Repair with Large Language Modelscited by 119
  10. 2023Large Language Models as Analogical Reasonerscited by 107
  11. 2023A Survey on LLM-Generated Text Detection: Necessity, Methods, and Future Directionscited by 105
  12. 2022Repair Is Nearly Generation: Multilingual Program Repair with LLMscited by 68
38 more
  1. 2022Compilable Neural Code Generation with Compiler Feedbackcited by 47
  2. 2024From Code to Correctness: Closing the Last Mile of Code Generation with Hierarchical Debuggingcited by 46
  3. 2022Grammatical Error Correction: A Survey of the State of the Artcited by 43
  4. 2023SelfEvolve: A Code Evolution Framework via Large Language Modelscited by 43
  5. 2023A New Era in Software Security: Towards Self-Healing Software via Large Language Models and Formal Verificationcited by 42
  6. 2021Learning to Repair: Repairing model output errors after deployment using a dynamic memory of feedbackcited by 35
  7. 2021LM-Critic: Language Models for Unsupervised Grammatical Error Correctioncited by 33
  8. 2023Measuring The Impact Of Programming Language Distributioncited by 32
  9. 2023Large Language Models of Code Fail at Completing Code with Potential Bugscited by 29
  10. 2022Repairing Bugs in Python Assignments Using Large Language Modelscited by 28
  11. 2024Performance-Aligned LLMs for Generating Fast Codecited by 21
  12. 2023INTERVENOR: Prompting the Coding Ability of Large Language Models with the Interactive Chain of Repaircited by 18
  13. 2022FixEval: Execution-based Evaluation of Program Fixes for Programming Problemscited by 17
  14. 2023ITER: Iterative Neural Repair for Multi-Location Patchescited by 16
  15. 2024MdEval: Massively Multilingual Code Debuggingcited by 16
  16. 2022On Distribution Shift in Learning-based Bug Detectorscited by 15
  17. 2023FLAME: A small language model for spreadsheet formulascited by 15
  18. 2023Better Context Makes Better Code Language Models: A Case Study on Function Call Argument Completioncited by 14
  19. 2024What can Large Language Models Capture about Code Functional Equivalence?cited by 14
  20. 2024COAST: Enhancing the Code Debugging Ability of LLMs through Communicative Agent Based Data Synthesiscited by 13
  21. 2022Neurosymbolic Repair for Low-Code Formula Languagescited by 12
  22. 2022Detect-Localize-Repair: A Unified Framework for Learning to Debug with CodeT5cited by 10
  23. 2022Improving Automated Program Repair with Domain Adaptationcited by 10
  24. 2022Fix Bugs with Transformer through a Neural-Symbolic Edit Grammarcited by 8
  25. 2022A Simple, Yet Effective Approach to Finding Biases in Code Generationcited by 8
  26. 2025CLOVER: A Test Case Generation Benchmark with Coverage, Long-Context, and Verificationcited by 8
  27. 2023LExecutor: Learning-Guided Executioncited by 7
  28. 2024Planning-Driven Programming: A Large Language Model Programming Workflowcited by 7
  29. 2026Learning to Repair Lean Proofs from Compiler Feedbackcited by 7
  30. 2023ZeroLeak: Using LLMs for Scalable and Cost Effective Side-Channel Patchingcited by 6
  31. 2023A Block Metropolis-Hastings Sampler for Controllable Energy-based Text Generationcited by 6
  32. 2024mathbbUSCD: Improving Code Generation of LLMs by Uncertainty-Aware Selective Contrastive Decodingcited by 6
  33. 2023The EarlyBIRD Catches the Bug: On Exploiting Early Layers of Encoder Models for More Efficient Code Classificationcited by 5
  34. 2025RepoDebug: Repository-Level Multi-Task and Multi-Language Debugging Evaluation of Large Language Modelscited by 5
  35. 2026CODESTRUCT: Code Agents over Structured Action Spacescited by 5
  36. 2022Can we learn from developer mistakes? Learning to localize and repair real bugs from real bug fixescited by 4
  37. 2024Aligners: Decoupling LLMs and Alignmentcited by 4
  38. 2024Learning Program Behavioral Models from Synthesized Input-Output Pairscited by 4

50 most cited of 71 All 71 (JSON)