論文の概要: EVOC2RUST: A Skeleton-guided Framework for Project-Level C-to-Rust Translation
- arxiv url: http://arxiv.org/abs/2508.04295v1
- Date: Wed, 06 Aug 2025 10:31:23 GMT
- ステータス: 翻訳完了
- システム内更新日: 2025-08-07 20:09:22.679631
- Title: EVOC2RUST: A Skeleton-guided Framework for Project-Level C-to-Rust Translation
- Title(参考訳): EVOC2RUST:プロジェクトレベルC-Rust翻訳のための骨格誘導フレームワーク
- Authors: Chaofan Wang, Tingrui Yu, Jie Wang, Dong Chen, Wenrui Zhang, Yuling Shi, Xiaodong Gu, Beijun Shen,
- Abstract要約: EvoC2Rustは、Cプロジェクト全体を同等のRustに変換する自動化フレームワークである。
オープンソースベンチマークと6つの産業プロジェクトに対する評価は,プロジェクトレベルのC-to-Rust翻訳におけるEvoC2Rustの優れた性能を示している。
- 参考スコア(独自算出の注目度): 16.12483934561206
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Rust's compile-time safety guarantees make it ideal for safety-critical systems, creating demand for translating legacy C codebases to Rust. While various approaches have emerged for this task, they face inherent trade-offs: rule-based solutions face challenges in meeting code safety and idiomaticity requirements, while LLM-based solutions often 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 entire C projects to equivalent Rust ones. EvoC2Rust employs a skeleton-guided translation strategy for project-level translation. The pipeline consists of three evolutionary 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 the function, replacing the corresponding stub placeholder; 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 EvoC2Rust's superior performance in project-level C-to-Rust translation. On average, it achieves 17.24% and 14.32% improvements in syntax and semantic accuracy over the LLM-based approaches, along with a 96.79% higher code safety rate than the rule-based tools. At the module level, EvoC2Rust reaches 92.25% compilation and 89.53% test pass rates on industrial projects, even for complex codebases and long functions.
- Abstract(参考訳): Rustのコンパイル時の安全性保証は、安全クリティカルなシステムに理想的であり、レガシCコードベースをRustに変換する需要を生み出している。
ルールベースのソリューションは、コード安全性と慣用性要件を満たす上での課題に直面します。一方、LLMベースのソリューションは、コードベース全体にわたるモジュールの重い依存関係のため、意味的に等価なRustコードの生成に失敗することが多いのです。
近年の研究では、どちらのソリューションも小規模プログラムに限られていることが判明している。
本稿では,Cプロジェクト全体を同等のRustに変換する自動化フレームワークであるEvoC2Rustを提案する。
EvoC2Rustは、プロジェクトレベルの翻訳に骨格誘導翻訳戦略を採用している。
パイプラインは3つの進化段階から構成される。
1) 最初にCプロジェクトを機能モジュールに分解し、定義とマクロを変換し、型チェックされた関数スタブを生成し、コンパイル可能なRustスケルトンを形成する。
2) 対応するスタブプレースホルダーを置き換えて,関数を漸進的に翻訳する。
3) 最後に、LLMと静的解析を統合することで、コンパイルエラーを修復する。
進化的拡張を通じて、EvoC2RustはルールベースのソリューションとLLMベースのソリューションの両方の利点を組み合わせた。
オープンソースのベンチマークと6つの産業プロジェクトに対する評価は、プロジェクトレベルのC-to-Rust翻訳におけるEvoC2Rustの優れた性能を示している。
平均して17.24%と14.32%の改善があり、ルールベースのツールよりも96.79%高いコード安全性率である。
モジュールレベルでは、EvoC2Rustは92.25%のコンパイルと89.53%のテストパス率に達した。
関連論文リスト
- IFEvalCode: Controlled Code Generation [69.28317223249358]
本稿では,Code LLMの命令追従能力を改善するために,前方および後方制約生成を提案する。
IFEvalCodeは、7つのプログラミング言語の1.6Kテストサンプルからなる多言語ベンチマークである。
論文 参考訳(メタデータ) (2025-07-30T08:08:48Z) - Turning the Tide: Repository-based Code Reflection [52.13709676656648]
マルチファイルリポジトリコンテキストにおけるコード理解と生成を評価するベンチマークであるLiveRepoReflectionを紹介する。
多様性、正確性、難易度を確保するため、6ドル(約6,800円)のプログラミング言語で厳格にテストケースをフィルタリングしました。
RepoReflection-Instructは、さまざまなソースから派生した大規模で品質の高い命令チューニングデータセットである。
論文 参考訳(メタデータ) (2025-07-14T02:36:27Z) - Large Language Model-Powered Agent for C to Rust Code Translation [2.182572303351317]
現代のシステムプログラミング言語であるRustは、C言語に代わるメモリセーフな代替言語として登場した。
C-to-Rust翻訳のエージェント能力の適用は、異なる課題をもたらす。
数学や常識 QA とは異なり、C-to-Rust に必要な中間ステップは十分に定義されていない。
我々は、新しい中間ステップ、仮想ファジィングに基づく等価テスト(VFT)、エージェント計画フレームワーク、LLMを利用したC-to-Rustコード翻訳のためのエージェント(LAC2R)を提案する。
論文 参考訳(メタデータ) (2025-05-21T01:26:23Z) - SafeTrans: LLM-assisted Transpilation from C to Rust [5.6274106543826585]
Rustは、Cの"システム"プログラミング言語としてのメモリセーフな代替として、強力な競争相手である。
本稿では,大規模な言語モデル(LLM)がRustへのCコードの自動コンパイルを実現する可能性を評価する。
SafeTrans は LLM を使って,C コードを Rust にトランスパイルするフレームワークである。
論文 参考訳(メタデータ) (2025-05-15T21:05:33Z) - CRUST-Bench: A Comprehensive Benchmark for C-to-safe-Rust Transpilation [63.23120252801889]
CRUST-Benchは100のCリポジトリのデータセットで、それぞれが安全なRustとテストケースで手書きのインターフェースとペアリングされている。
我々は、このタスクで最先端の大規模言語モデル(LLM)を評価し、安全で慣用的なRust生成が依然として難しい問題であることを確認した。
最高のパフォーマンスモデルであるOpenAI o1は、ワンショット設定で15タスクしか解決できない。
論文 参考訳(メタデータ) (2025-04-21T17:33:33Z) - LLMigrate: Transforming "Lazy" Large Language Models into Efficient Source Code Migrators [21.114491141763647]
RustでCコードを書き直すことでメモリの安全性が向上するが、32万行のLinuxカーネルのような大規模なマイグレーションは依然として困難である。
最近のLarge Language Model (LLM)アプローチは、より慣用的で安全なRustプログラムを生成するが、しばしば"遅延"を示す。
LLMベースのC-to-Rust翻訳ツールはモジュールを個別の関数に分割し、個別に翻訳し、再統合する。
論文 参考訳(メタデータ) (2025-03-31T07:09:07Z) - RustMap: Towards Project-Scale C-to-Rust Migration via Program Analysis and LLM [13.584956125542396]
Rustは、Cのパフォーマンスを維持しながら、優れたメモリ安全性を提供する。
C2Rustのような既存の自動翻訳ツールは、構文的、テンプレートベースの翻訳に依存しすぎている可能性がある。
本稿では,新しい依存誘導型大規模言語モデル (LLM) をベースとしたC-to-Rust変換手法であるRustMapを提案する。
論文 参考訳(メタデータ) (2025-03-22T11:57:45Z) - ReF Decompile: Relabeling and Function Call Enhanced Decompile [50.86228893636785]
逆コンパイルの目標は、コンパイルされた低レベルコード(アセンブリコードなど)を高レベルプログラミング言語に変換することである。
このタスクは、脆弱性識別、マルウェア分析、レガシーソフトウェアマイグレーションなど、さまざまなリバースエンジニアリングアプリケーションをサポートする。
論文 参考訳(メタデータ) (2025-02-17T12:38:57Z) - ExecRepoBench: Multi-level Executable Code Completion Evaluation [45.963424627710765]
本稿では,リポジトリレベルのベンチマークであるExecRepoBenchの作成を通じて,ソフトウェア開発におけるコード補完を強化する新しいフレームワークを紹介する。
本稿では,抽象構文木をベースとした多段階文法ベースの補完手法を提案し,様々な論理単位のコードフラグメントをマスキングする。
次に,Repo-Instruct の 7B パラメータでオープンソースの LLM を微調整し,強力なコード補完ベースラインモデル Qwen2.5-Coder-Instruct-C を生成する。
論文 参考訳(メタデータ) (2024-12-16T17:14:35Z) - Context-aware Code Segmentation for C-to-Rust Translation using Large Language Models [1.8416014644193066]
大きな言語モデル(LLM)は、ルールベースのメソッドよりも自然で安全なコードを生成することで、この翻訳を自動化することを約束している。
大規模Cコードをコンパイル可能なRustコードに変換する際の成功率を改善するLLMベースの翻訳方式を提案する。
4キロのコードを含む20のベンチマークCプログラムの実験では、すべてのプログラムをコンパイル可能なRustコードに変換することに成功した。
論文 参考訳(メタデータ) (2024-09-16T17:52:36Z) - M2CVD: Enhancing Vulnerability Semantic through Multi-Model Collaboration for Code Vulnerability Detection [52.4455893010468]
大規模言語モデル(LLM)は、コード理解において強力な能力を持つが、微調整コストとセマンティックアライメントの問題により、プロジェクト固有の最適化が制限される。
CodeBERTのようなコードモデルは微調整が容易であるが、複雑なコード言語から脆弱性のセマンティクスを学ぶことはしばしば困難である。
本稿では,M2CVD(Multi-Model Collaborative Vulnerability Detection)手法を提案する。
論文 参考訳(メタデータ) (2024-06-10T00:05:49Z) - ML-Bench: Evaluating Large Language Models and Agents for Machine Learning Tasks on Repository-Level Code [76.84199699772903]
ML-Benchは、既存のコードリポジトリを利用してタスクを実行する現実世界のプログラミングアプリケーションに根ざしたベンチマークである。
LLM(Large Language Model)とAIエージェントの両方を評価するために、事前に定義されたデプロイメント環境でLLMのテキスト-コード変換を評価するML-LLM-Benchと、Linuxサンドボックス環境でエンドツーエンドのタスク実行で自律エージェントをテストするML-Agent-Benchの2つの設定が採用されている。
論文 参考訳(メタデータ) (2023-11-16T12:03:21Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。