English

Integrating Rules and Semantics for LLM-Based C-to-Rust Translation

Software Engineering 2025-08-12 v1

Abstract

Automated translation of legacy C code into Rust aims to ensure memory safety while reducing the burden of manual migration. Early approaches in code translation rely on static rule-based methods, but they suffer from limited coverage due to dependence on predefined rule patterns. Recent works regard the task as a sequence-to-sequence problem by leveraging large language models (LLMs). Although these LLM-based methods are capable of reducing unsafe code blocks, the translated code often exhibits issues in following Rust rules and maintaining semantic consistency. On one hand, existing methods adopt a direct prompting strategy to translate the C code, which struggles to accommodate the syntactic rules between C and Rust. On the other hand, this strategy makes it difficult for LLMs to accurately capture the semantics of complex code. To address these challenges, we propose IRENE, an LLM-based framework that Integrates RulEs aNd sEmantics to enhance translation. IRENE consists of three modules: 1) a rule-augmented retrieval module that selects relevant translation examples based on rules generated from a static analyzer developed by us, thereby improving the handling of Rust rules; 2) a structured summarization module that produces a structured summary for guiding LLMs to enhance the semantic understanding of C code; 3) an error-driven translation module that leverages compiler diagnostics to iteratively refine translations. We evaluate IRENE on two datasets (xCodeEval, a public dataset, and HW-Bench, an industrial dataset provided by Huawei) and eight LLMs, focusing on translation accuracy and safety.

Keywords

Cite

@article{arxiv.2508.06926,
  title  = {Integrating Rules and Semantics for LLM-Based C-to-Rust Translation},
  author = {Feng Luo and Kexing Ji and Cuiyun Gao and Shuzheng Gao and Jia Feng and Kui Liu and Xin Xia and Michael R. Lyu},
  journal= {arXiv preprint arXiv:2508.06926},
  year   = {2025}
}

Comments

Accepted in ICSME 25 Industry Track

R2 v1 2026-07-01T04:42:24.596Z