Pith. sign in

REVIEW 2 cited by

Ownership guided C to Rust translation

Not yet reviewed by Pith; the record is open.

This paper has not been read by Pith yet. Machine review is queued; the pith claim, tier, and objections will appear here once it completes.

SPECIMEN: schema-true, not a live event

T0 review · schema-true

One-sentence machine reading of the paper's core claim.

pith:XXXXXXXX · record.json · timestamp

arxiv 2303.10515 v1 pith:BWSEK5QF submitted 2023-03-18 cs.PL cs.SE

classification cs.PLcs.SE
keywords rustownershipcodebasespointerstranslationveryachievesanalyses
verification ladder T0 review T1 audit T2 compute T3 formal
0 comments
read the original 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.

Discussion (0). Continue with ORCID to comment.

Forward citations

Cited by 2 Pith papers

Reviewed papers in the Pith corpus that reference this work. Sorted by Pith novelty score. Full citation record

  1. Syzygy: Dual Code-Test C to (safe) Rust Translation using LLMs and Dynamic Analysis

    cs.SE 2024-12 conditional novelty 7.0 of 10

    A dual code-and-test generation pipeline with dynamic-analysis specifications translates the 3,000-line Zopfli C library into safe Rust, though the top-level validation compares compression ratios rather than exact outputs.

  2. Translating C To Rust: Lessons from a User Study

    cs.SE 2024-11 conditional novelty 7.0 of 10

    Non-expert humans can translate small real-world C programs into safe, reasonably fast Rust, but no automatic tool in the study could, and every human translation still had behavioral differences from the C original.

Pith tools