返回
From C to Rust: Evaluating LLM Capabilities in Transpilation Through Compilation Errors
DOI:10.1007/978-3-032-07612-0_24.png)
摘要
En 中文
将C代码库迁移至Rust因Rust强大的内存安全保证而日益吸引人。然而,代码迁移成本高昂且耗时,促使使用大型语言模型(LLMs)以加速该过程并解决传统规则基础方法的局限性。本研究评估了开源领域前沿模型在C到安全Rust转换中的零样本性能,发现通用模型在pass@1上达到50%,中等规模代码模型也表现有竞争力。此外,我们提出了一种混合方法,其中C2Rust工具生成初始不安全Rust转换,随后LLM将其优化为安全Rust。在不安全到安全Rust转换任务上的结果指示各模型普遍改进,表明可将C2Rust用作预处理工具。最后,我们分析常见编译错误,揭示LLM在处理Rust特定语法特性(如空值检查、C API和迭代器)时的局限性。总体而言,本研究刻画了LLM在C到Rust转换中的性能并识别了其当前局限。
Keyword:
C-to-Rust transpilation
Large Language Models
Memory safety
Code migration
Compilation errors

