arrow
返回

RustMap: Towards Project-Scale C-to-Rust Migration via Program Analysis and LLM

delete2026-01-01
delete0
PRE
AI
X
Xuemeng Cai
J
Jiakun Liu
黄
黄希 (Xi‐Ping Huang)
Y
Yijun Yu *
H
Haitao Wu
C
Chunmiao Li *
B
Bo Wang *
I
Imam Nur Bani Yusuf
L
Lingxiao Jiang *
DOI:10.1007/978-3-032-00828-2_16delete
delete原文链接
delete原文求助
delete分享
delete收藏
摘要

摘要

En 中文
将现有C程序迁移到Rust的需求日益增长,因为Rust在保持C高性能的同时提供了卓越的内存安全性。现有的自动化翻译工具(如C2Rust)可能过度依赖基于语法的模板化翻译,生成难以供人类开发者阅读、维护甚至编译的不安全Rust代码。更具语义感知的翻译以生成更安全、更符合惯例且可运行的Rust代码是迫切需要的。本文介绍了一种基于依赖引导和大型语言模型(LLM)的新型C到Rust翻译方法RustMap,基于三个关键思想:(1)利用LLM的能力从给定的少量C代码生成符合惯例的Rust代码,(2)通过根据使用依赖关系将项目规模的C程序分解为更小的单元进行翻译,缓解LLM处理大型代码库的能力不足问题,(3)利用可用测试用例检查C和Rust代码之间的输入/输出等价性,并通过利用编译和测试错误的反馈迭代地用于LLM,以增强翻译后的Rust程序的正确性。我们在126个真实世界样本程序上对RustMap进行了实证评估,包括125个来自Rosetta Code的程序和一个包含超过7000行代码的复杂bzip2程序,使用GPT-4o作为LLM。RustMap在引导GPT-4o将大部分C代码翻译成更符合惯例、可读且功能性的Rust代码方面表现出有前景的结果,其中包含的unsafe代码显著少于其他翻译工具,并呈现了可能可供未来研究复用的非平凡翻译模式。
Keyword:
Program translation
C2Rust
Dependency analysis
LLM

期刊

E
ENGINEERING OF COMPLEX COMPUTER SYSTEMS, ICECCS 2025
IF:
0
论文数:
26
被引数:
0

机构

B
Beijing Jiaotong University
学者数:
2.2W
论文数: 1.7W
被引数: 1.2W
O
open university - uk
学者数:
4.1K
论文数: 4.3K
被引数: 2
S
singapore management university
学者数:
371
论文数: 278
被引数: 0
学者 查看更多机构
引用论文

引用论文

err
IF0
err
err0
PREAI
err
err分享
err收藏
A Closer Look at the Security Risks in the Rust Ecosystem
err2023-12-21
err0
errOAAI
errZheng, Xiaoye; Wan, Zhiyuan; Zhang, Yun; Chang, Rui; Lo, David
err分享
err收藏
RustBelt: securing the foundations of the Rust programming language
err2017-12-27
err0
errOAAI
errRalf Jung; Jacques-Henri Jourdan; Robbert Krebbers; Derek Dreyer
err分享
err收藏
Aliasing Limits on Translating C to Safe Rust从C到安全Rust转换中的混叠限制
err2023-04-06
err0
errOAAI
errMehmet Emre; Peter Boyland; Aesha Parekh; Ryan Schroeder; Kyle Dewey; Ben Hardekopf
err分享
err收藏
In rust we trust在Rust中我们信任
err2022-10-19
err0
errOAAI
errMichael Ling; Yijun Yu; Haitao Wu; Yuan Wang; James R. Cordy; Ahmed E. Hassan
err分享
err收藏
学者 查看更多内容