用大型语言模型自动将C代码移植到Rust
2025-06-18
本文讲述了作者利用大型语言模型(LLM)自动将C语言代码移植到Rust语言的经验。作者尝试了几种方法,最终采用了一种基于拓扑排序和模糊测试的策略:首先按拓扑顺序排序C代码中的符号,然后使用LLM生成每个符号的Rust版本以及对应的模糊测试用例,通过比较C和Rust版本的输出结果来验证移植的正确性。这种方法取得了显著成功,作者成功地将一个名为Zopfli的压缩库从C移植到Rust,且运行结果与C版本完全一致。虽然该方法并非完全自动化,但大大降低了移植的成本和难度,为大型代码库的维护和升级提供了新的思路。
(rjp.io)
开发
代码移植