EvoC2Rust: A Skeleton-guided Framework for Project-Level C-to-Rust Translation

Fuente: arXiv
Guardado en:
Detalles Bibliográficos
Autores principales: Wang, Chaofan, Yu, Tingrui, Shen, Beijun, Wang, Jie, Chen, Dong, Zhang, Wenrui, Shi, Yuling, Xie, Chen, Gu, Xiaodong
Formato: Preprint
Publicado: 2025
Materias:
Acceso en línea:
Etiquetas: Agregar Etiqueta
Sin Etiquetas, Sea el primero en etiquetar este registro!
_version_ 1866911370795024384
author Wang, Chaofan
Yu, Tingrui
Shen, Beijun
Wang, Jie
Chen, Dong
Zhang, Wenrui
Shi, Yuling
Xie, Chen
Gu, Xiaodong
author_facet Wang, Chaofan
Yu, Tingrui
Shen, Beijun
Wang, Jie
Chen, Dong
Zhang, Wenrui
Shi, Yuling
Xie, Chen
Gu, Xiaodong
contents Translating legacy C codebases to Rust is increasingly demanded for building safety-critical systems. While various approaches have emerged for this task, they face inherent trade-offs: rule-based methods often struggle to satisfy code safety and idiomaticity requirements, while LLM-based methods frequently fail to generate semantically equivalent Rust code, due to the heavy dependencies of modules across the entire codebase. Recent studies have revealed that both solutions are limited to small-scale programs. In this paper, we propose EvoC2Rust, an automated framework for converting complete C projects to equivalent Rust ones. EvoC2Rust employs a skeleton-guided translation strategy for project-level translation. The pipeline consists of three stages: 1) it first decomposes the C project into functional modules, employs a feature-mapping-enhanced LLM to transform definitions and macros, and generates type-checked function stubs, which form a compilable Rust skeleton; 2) it then incrementally translates functions, replacing the corresponding stub placeholders; 3) finally, it repairs compilation errors by integrating LLM and static analysis. Through evolutionary augmentation, EvoC2Rust combines the advantages of both rule-based and LLM-based solutions. Our evaluation on open-source benchmarks and six industrial projects demonstrates the superior performance of EvoC2Rust in project-level C-to-Rust translation. The results show that our approach outperforms the strongest LLM-based baseline by 17.24% in syntax accuracy and 14.32% in semantic accuracy, while also achieving a 43.59% higher code safety rate than the best rule-based tool.
format Preprint
id arxiv_https___arxiv_org_abs_2508_04295
institution arXiv
publishDate 2025
record_format arxiv
spellingShingle EvoC2Rust: A Skeleton-guided Framework for Project-Level C-to-Rust Translation
Wang, Chaofan
Yu, Tingrui
Shen, Beijun
Wang, Jie
Chen, Dong
Zhang, Wenrui
Shi, Yuling
Xie, Chen
Gu, Xiaodong
Software Engineering
Artificial Intelligence
Translating legacy C codebases to Rust is increasingly demanded for building safety-critical systems. While various approaches have emerged for this task, they face inherent trade-offs: rule-based methods often struggle to satisfy code safety and idiomaticity requirements, while LLM-based methods frequently fail to generate semantically equivalent Rust code, due to the heavy dependencies of modules across the entire codebase. Recent studies have revealed that both solutions are limited to small-scale programs. In this paper, we propose EvoC2Rust, an automated framework for converting complete C projects to equivalent Rust ones. EvoC2Rust employs a skeleton-guided translation strategy for project-level translation. The pipeline consists of three stages: 1) it first decomposes the C project into functional modules, employs a feature-mapping-enhanced LLM to transform definitions and macros, and generates type-checked function stubs, which form a compilable Rust skeleton; 2) it then incrementally translates functions, replacing the corresponding stub placeholders; 3) finally, it repairs compilation errors by integrating LLM and static analysis. Through evolutionary augmentation, EvoC2Rust combines the advantages of both rule-based and LLM-based solutions. Our evaluation on open-source benchmarks and six industrial projects demonstrates the superior performance of EvoC2Rust in project-level C-to-Rust translation. The results show that our approach outperforms the strongest LLM-based baseline by 17.24% in syntax accuracy and 14.32% in semantic accuracy, while also achieving a 43.59% higher code safety rate than the best rule-based tool.
title EvoC2Rust: A Skeleton-guided Framework for Project-Level C-to-Rust Translation
topic Software Engineering
Artificial Intelligence
url https://arxiv.org/abs/2508.04295