Sirius: Static Program Repair with Dependence Graph-Based Systematic Edit Patterns
Kunihiro Noda, Haruki Yokoyama, Shinji Kikuchi

TL;DR
Sirius is a program repair system that mines systematic edit patterns from code changes using dependence graphs and applies them to fix overlooked bugs, outperforming existing techniques.
Contribution
This paper introduces a novel program transformation algorithm for applying PDG-based systematic edit patterns to other code locations, enabling automated bug repair.
Findings
Sirius achieved higher precision, recall, and F1-score than state-of-the-art methods.
The approach effectively detects and repairs overlooked bugs in open source software.
The method demonstrates practical applicability in real-world software repositories.
Abstract
Software development often involves systematic edits, similar but nonidentical changes to many code locations, that are error-prone and laborious for developers. Mining and learning such systematic edit patterns (SEPs) from past code changes enable us to detect and repair overlooked buggy code that requires systematic edits. A recent study presented a promising SEP mining technique that is based on program dependence graphs (PDGs), while traditional approaches leverage syntax-based representations. PDG-based SEPs are highly expressive and can capture more meaningful changes than syntax-based ones. The next challenge to tackle is to apply the same code changes as in PDG-based SEPs to other code locations; detection and repair of overlooked locations that require systematic edits. Existing program transformation techniques cannot well address this challenge because (1) they expect many…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Software System Performance and Reliability · Software Reliability and Analysis Research
