论文
从 C 语言到惯用的 Rust:忒修斯之船的代理翻译
From C to Idiomatic Rust: A Ship-of-Theseus Agentic Translation
摘要
C 是操作系统、嵌入式平台和网络基础设施的基础,因为它的抽象直接映射到机器行为。其显式内存模型、可预测的数据表示和最小的运行时间使编译器能够生成快速、确定性的代码。这些属性还将正确性和内存安全性完全留给了程序员,从而使未定义的行为、指针滥用和生命周期错误成为长期 C 代码库中缺陷和安全漏洞的持久来源。 Rust 通过静态所有权和借用模型消除了大多数故障模式,该模型在编译时强制执行内存安全和别名约束。然而,成熟的 C 系统无法直接翻译:隐式布局假设、别名模式和未定义行为必须在生成安全 Rust 之前重建。本文提出了一种迁移方法,首先生成保留语义的非惯用 Rust 基线,然后使用代理 AI 将其增量重写为惯用 Rust,通过编译和行为测试来验证每个步骤。该方法应用于现实世界的 DNS 隧道 iodine,表明可靠的 C 到 Rust 迁移是一个结构化的转换工作流程,而不是单个翻译步骤。