LLMigrate: Transforming "Lazy" Large Language Models into Efficient Source Code Migrators
Fuente:
arXiv
Saved in:
| Main Authors: | , , , , , , |
|---|---|
| Format: | Preprint |
| Published: |
2025
|
| Subjects: | |
| Online Access: | |
| Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
| _version_ | 1866912301723942912 |
|---|---|
| author | Liu, Yuchen Hu, Junhao Shan, Yingdi Li, Ge Zou, Yanzhen Dong, Yihong Xie, Tao |
| author_facet | Liu, Yuchen Hu, Junhao Shan, Yingdi Li, Ge Zou, Yanzhen Dong, Yihong Xie, Tao |
| contents | Rewriting C code in Rust provides stronger memory safety, yet migrating large codebases such as the 32-million-line Linux kernel remains challenging. While rule-based translators (e.g., C2Rust) provide accurate yet largely unsafe Rust programs, recent Large Language Model (LLM) approaches produce more idiomatic, safe Rust programs but frequently exhibit "laziness", omitting significant portions of the target code. To address the issue, in this paper, we present LLMigrate, an LLM-based C-to-Rust translation tool that splits modules into discrete functions, translating them individually, and then reintegrating them. LLMigrate uses static analysis to retain necessary context, pairs GPT-4o (a state-of-the-art LLM) with compiler-driven translation and program-repair techniques for complex core functions, and leverages call-graph-guided translation to ensure consistent interfaces. Evaluations on three representative Linux kernel modules (math, sort, and ramfs) show that LLMigrate requires modifying less than 15\% of the target code, significantly outperforming a pure GPT-4o-based migration. |
| format | Preprint |
| id |
arxiv_https___arxiv_org_abs_2503_23791 |
| institution | arXiv |
| publishDate | 2025 |
| record_format | arxiv |
| spellingShingle | LLMigrate: Transforming "Lazy" Large Language Models into Efficient Source Code Migrators Liu, Yuchen Hu, Junhao Shan, Yingdi Li, Ge Zou, Yanzhen Dong, Yihong Xie, Tao Programming Languages Software Engineering Rewriting C code in Rust provides stronger memory safety, yet migrating large codebases such as the 32-million-line Linux kernel remains challenging. While rule-based translators (e.g., C2Rust) provide accurate yet largely unsafe Rust programs, recent Large Language Model (LLM) approaches produce more idiomatic, safe Rust programs but frequently exhibit "laziness", omitting significant portions of the target code. To address the issue, in this paper, we present LLMigrate, an LLM-based C-to-Rust translation tool that splits modules into discrete functions, translating them individually, and then reintegrating them. LLMigrate uses static analysis to retain necessary context, pairs GPT-4o (a state-of-the-art LLM) with compiler-driven translation and program-repair techniques for complex core functions, and leverages call-graph-guided translation to ensure consistent interfaces. Evaluations on three representative Linux kernel modules (math, sort, and ramfs) show that LLMigrate requires modifying less than 15\% of the target code, significantly outperforming a pure GPT-4o-based migration. |
| title | LLMigrate: Transforming "Lazy" Large Language Models into Efficient Source Code Migrators |
| topic | Programming Languages Software Engineering |
| url | https://arxiv.org/abs/2503.23791 |