Canonical 联手 Bristol 大学,用 AI 将 C 代码转 Rust
Canonical Backs New Project to Translate Large C Codebases into Safe Rust

Canonical 宣布与英国 Bristol 大学合作,启动一项为期三年的研究项目,旨在解决将大型成熟 C 代码库自动迁移到 Rust 的难题。面对手动重写成本高昂且风险巨大的现状,现有的源到源翻译工具往往只是机械复制 C 的结构,导致生成的 Rust 代码仍充满不安全特性。而 LLM 虽然擅长处理小片段,却难以掌控整个仓库的上下文。该项目将采用混合的“神经符号”方法,结合机器学习与传统程序分析,利用在 C 到 Rust 案例上训练的语言模型,生成符合 Rust 习惯的代码。AppArmor 和 snap-confine 将作为真实案例进行测试,但并非立即重写。这一举措标志着 Canonical 在 Ubuntu 中推广 Rust 的又一重要步骤,此前 uutils coreutils 和 sudo-rs 已成功落地。
手动重写这些项目不仅成本高昂且充满风险,因为它们的代码往往包含了多年的修复、兼容性更新、性能优化以及隐藏的知识。
HN 评论区
45- kayo_20211030
我对编程语言没有任何特定的宗教式偏好。大家用觉得合适的就行。
不过,假设这项努力彻底成功了,下一步呢?
所有 C 代码库的维护者都能转去维护(并向前推进)Rust 代码库吗?肯定会有摩擦,也会有因摩擦造成的损失。
那部署、监控、支持和故障排查呢?负责这些功能的团队未来还能胜任吗?在我看来,现实世界中那些功能完善、持续演进且可靠的系统从“这里”到“那里”的过程被略过了,直接变成了“待定的后续玩家”。
- childintime
Darpa Tractor 项目似乎也在追求同样的目标:
https://news.ycombinator.com/item?id=41110269
就在几周前,该项目还被判定为不太可能成功。现在 Canonical 也想入局。
- qew16t
好东西。与其去询问并资助各个项目的 C 开发者进行移植,他们倒不如直接搞“许可证清洗”和窃取。
- golbez9
真要搞变革,就重写为 Zig。
- djoldman
这和这个不一样:
https://github.com/uutils/coreutils
不过他们或许也能从中受益。