论文
文档引导的代理代码库从 C 迁移到 Rust
Documentation-Guided Agentic Codebase Migration from C to Rust
摘要
将遗留 C 存储库迁移到 Rust 可以保证更强的内存安全性,但现有的翻译器通常在文件或函数级别工作,而忽略了架构意图。我们推出 RustPrint,这是一个文档引导的代理框架,用于存储库级 C 到 Rust 的迁移。 RustPrint 首先将源存储库转换为架构感知文档,并将其视为捕获模块结构、数据流、API 和设计原理的迁移蓝图。然后,编码智能体 使用此蓝图来规划 crate、实现模块、检查可编译性、减少不安全代码并迭代完善翻译后的存储库。 RustPrint 接下来将 Rust 输出的文档与源文档进行比较,并使用不匹配作为修复信号。它还转换并运行源测试套件,以便运行时故障可以指导有针对性的修复。对从 11K 到 84K LoC 的 8 个真实 C 存储库进行的实验表明,RustPrint 在开放权重 (Kimi-K2-Instruct) 和封闭权重 (GPT-5.4) 主干下编译每个目标,而之前基于 LLM 的翻译器(Self-Repair、EvoC2Rust)在整个存储库范围内失败。凭借开放权重 Kimi-K2-Instruct 主干网,RustPrint 在特征保留(93.26% vs. 52.52%)和交叉评估测试通过率(95.17% vs. 79.85%)方面超过了代理 Claude Code 基线。这些结果表明,文档引导的协调是可扩展代码库迁移的有用方向。