
Canonical近日宣布出资支持一项为期三年的博士研究项目,致力于开发一套系统,能够自动将大型C代码库转换为Rust语言。该项目获得了英国研究与创新(UKRI)的资金匹配,将由布里斯托大学的编程语言研究小组负责实施。

该博士项目旨在构建一个全方位的平台,能够处理数以十万行计的C代码仓库,将其转换为“安全、行为正确且可维护的Rust代码”。项目将由学生Alex Wood主导,在Meng Wang教授的指导下进行,Cristina David博士与Canonical的Jon Seager将担任联合导师。
从C代码自动转换为Rust需解决多个问题,系统将通过序列化步骤逐步处理。首先,系统需将庞大的代码库拆分为易于处理的模块,同时保留模块间的依赖关系。随后,利用已训练的语言模型进行实际翻译,目标是生成符合Rust开发者习惯的代码,而非简单的语法替换。翻译后的代码需通过验证环节,确保其行为与原C代码一致,这涉及模糊测试和形式等价检查。若出现偏差,系统将采用符号程序修复技术定位错误并修正,而非重新翻译整个模块。
Jon Seager指出,语言模型仅承担部分工作,生成的代码必须通过验证才能确保功能完整性。
项目选择AppArmor和snap-confine作为测试对象,这两项技术在Ubuntu系统中已投入生产使用,负责权限控制和沙箱隔离,是用户日常依赖但不易察觉的关键组件。选择它们并非因其简单,而是因为Canonical希望借助工业级测试案例,验证方法在真实生产环境下的可靠性。测试真实组件能模拟多年实际使用积累的复杂情况,使翻译过程更具挑战性,这正是项目的核心目标。
Jon Seager强调,该项目成果不会立即应用于这些工具,Canonical的关注点在于验证方法的可行性,而非直接进行代码重写。
若该项目成功,Canonical将获得自动化翻译是否可信的答案,特别是针对保护系统安全的代码。这将使Ubuntu用户——从普通桌面用户到企业部署——最终可能获得更少漏洞的安全关键组件,而无需承担手动重写敏感代码的高风险和耗时成本。
关注微信号:智享开源 ,及时了解更新信息。
你必须 登录 才能发表评论.
| 微信捐赠 | 支付宝捐赠 |
|---|---|
![]() |
![]() |
扫码关注公众号:智享开源

还没有任何评论,你来说两句吧!