English

Ownership guided C to Rust translation

Programming Languages 2023-03-21 v1 Software Engineering

Abstract

Dubbed a safer C, Rust is a modern programming language that combines memory safety and low-level control. This interesting combination has made Rust very popular among developers and there is a growing trend of migrating legacy codebases (very often in C) to Rust. In this paper, we present a C to Rust translation approach centred around static ownership analysis. We design a suite of analyses that infer ownership models of C pointers and automatically translate the pointers into safe Rust equivalents. The resulting tool, Crown, scales to real-world codebases (half a million lines of code in less than 10 seconds) and achieves a high conversion rate.

Keywords

Cite

@article{arxiv.2303.10515,
  title  = {Ownership guided C to Rust translation},
  author = {Hanliang Zhang and Cristina David and Yijun Yu and Meng Wang},
  journal= {arXiv preprint arXiv:2303.10515},
  year   = {2023}
}
R2 v1 2026-06-28T09:22:40.517Z