ICFP/SPLASH 2025 (series) / SPLASH 2025 (series) / OOPSLA /
A Sound Static Analysis Approach to I/O API Migration
Advances in modern storage technologies necessitate the development of new input/output (I/O) APIs to maximize their performance benefits. However, migrating existing software to use different APIs poses significant challenges due to mismatches in computational models and complexity in software structures. We present a novel static analysis technique for migrating software to different I/O APIs. We implement the algorithm in a tool called Sprout. Experimental results with real-world C programs highlight the efficiency, effectiveness, and generality of our approach. To the best of our knowledge, our approach is the first to automatically generate migrations for stateful, noncontiguous multi-API calls with formal correctness guarantees.