English

Validated Code Translation for Projects with External Libraries

Software Engineering 2026-02-24 v1 Programming Languages

Abstract

Large Language Models (LLMs) have shown promise for program translation, particularly for migrating systems code to memory-safe languages such as Rust. However, existing approaches struggle when source programs depend on external libraries: LLMs frequently hallucinate non-existent target APIs and fail to generate call-enabling imports; moreover, validating semantic equivalence is challenging when the code manipulates opaque, library-defined types. We present a translation and validation framework for translating Go projects with external dependencies to Rust. Our approach combines (i) a retrieval mechanism that maps Go library APIs to Rust APIs, and (ii) a cross-language validation pipeline that establishes language interoperability in the presence of opaque library types by synthesising adapters exclusively from public library APIs, prior to validating I/O equivalence. We evaluate our system on six real-world Go repositories with non-trivial external dependencies. Our approach significantly increases both the compilation and equivalence success rate (up to 100% in the most dependency-heavy case; approx. 2x on average) by enabling validated translation that manipulate opaque, library-defined types.

Keywords

Cite

@article{arxiv.2602.18534,
  title  = {Validated Code Translation for Projects with External Libraries},
  author = {Hanliang Zhang and Arindam Sharma and Cristina David and Meng Wang and Brandon Paulsen and Daniel Kroening and Wenjia Ye and Taro Sekiyama},
  journal= {arXiv preprint arXiv:2602.18534},
  year   = {2026}
}