A Sound Static Analysis Approach to I/O API Migration
The 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 complex code structures surrounding stateful, non-contiguous multi-API call sites. We present Sprout, a new system for automatically migrating programs across I/O APIs that guarantees behavioral equivalence. Sprout uses flow-sensitive pointer analysis to identify semantic variables, which enables the typestate analysis for matching API semantics and the synthesis of migrated programs. Experimental results with real-world C programs highlight the efficiency and effectiveness of our approach. We also show that Sprout can be adapted to other domains, such as databases.
Authors
- Shangyu Li (ORCID: https://orcid.org/0009-0002-5163-3310)
- Jiasi Shen (ORCID: https://orcid.org/0000-0002-5904-3641)
- Diyu Zhou (ORCID: https://orcid.org/0009-0003-8620-1064)
- Suiqin Zhong (ORCID: https://orcid.org/0009-0007-1521-3569)
- Z J Zhang
Institutions
- Hong Kong University of Science and Technology (HK)
- Peking University (CN)
Publication Details
- Journal
- Proceedings of the ACM on Programming Languages
- Published
- 2025-10-09
- DOI
- https://doi.org/10.1145/3763071
- Primary Topic
- Advanced Data Storage Technologies
- Type
- article
- Field-Weighted Citation Impact
- 0.00