about
Gradient-Based Program Repair: Fixing Bugs in Continuous Program Spaces (arxiv.org)
16 points by andre15silva on May 27, 2025 | hide | past | pdf | discuss on HN

In plain words: Buggy programs are turned into smooth numerical versions nudged toward correct behavior based on how wrong the output is, instead of guessing fixed code token by token. On a new set of 1,466 buggy programs, this approach repaired them with clear, steady progress.

Abstract

Automatic program repair seeks to generate correct code from buggy programs, with most approaches searching the correct program in a discrete, symbolic space of source code tokens. This symbolic search is fundamentally limited by its inability to directly reason about program behavior. We introduce Gradient-Based Program Repair (GBPR), a new approach that recasts program repair as continuous optimization in a differentiable numerical program space. Our core insight is to compile symbolic programs into differentiable numerical representations, enabling search in the numerical program space directly guided by program behavior. To evaluate GBPR, we present RaspBugs, a new benchmark of 1,466 buggy symbolic RASP programs and their respective numerical representations. Our experiments demonstrate that GBPR can effectively repair buggy symbolic programs by gradient-based optimization in the numerical program space, with convincing repair trajectories. To our knowledge, we are the first to state program repair as continuous optimization in a numerical program space. Our work demonstrates the feasibility of this direction for program repair research, bridging continuous optimization and program behavior.

André Silva, Gustav Thorén, Martin Monperrus
arXiv:2505.17703 · cs.PL, cs.LG, cs.SE · submitted May 23, 2025 · updated Mar 25, 2026
abstract · pdf · html

add comment on HN