APIfix: Output-Oriented Program Synthesis for Combating Breaking Changes in Libraries
summary
APIFix uses output-oriented synthesis to infer API-adaptation edits by mining human edits plus existing updated-library usages, then performs provenance analysis and anti-unification to infer missing input examples and synthesize context-sensitive transformation rules. Evaluation uses 109 real API adaptations and thousands of usages; generated rules achieve high fidelity (reported as 98.7% precision, 91.5% recall and ~91% syntactic/semantic accuracy) and avoid overfitting common in prior tools.
AI-written summary · about
chapters (12)
- 0:00Intro
- 0:19Breaking Changes and API adaptation
- 1:34Learning Program transformations from examples
- 3:29Learning from examples and its limitation
- 3:56Existing solution
- 5:51Find useful additional output
- 7:10Output-Oriented Program Synthesis
- 7:52Input Inference
- 9:08Provenance analysis Find which fragments in output depend on which fragments in the input.
- 9:51Anti-unification modulo provenance
- 12:16Evaluation
- 14:02Summary
related talks
30mAPISan: Sanitizing API Usages through Semantic Cross-Checking
47mAPI Design Principles
15mAnalogy-Making as a Core Primitive in the Software Engineering Toolbox
21mProgram Synthesis From Partial Traces
14mA Sound Static Analysis Approach to I/O API Migration
22mProgram Synthesis for Artifacts beyond Programs
36mStatic Analysis of APL for Tooling and Compliance
01h 29mC++ API & ABI versioning
