論文の概要: C2RustXW: Program-Structure-Aware C-to-Rust Translation via Program Analysis and LLM
- arxiv url: http://arxiv.org/abs/2603.28686v1
- Date: Mon, 30 Mar 2026 17:07:11 GMT
- ステータス: 翻訳完了
- システム内更新日: 2026-03-31 23:18:45.52925
- Title: C2RustXW: Program-Structure-Aware C-to-Rust Translation via Program Analysis and LLM
- Title(参考訳): C2RustXW:プログラム解析とLCMによるプログラム構造対応C-to-Rust翻訳
- Authors: Yanyan Yan, Yang Feng, Jiangshan Liu, Di Liu, Zixi Liu, Hao Teng, Baowen Xu,
- Abstract要約: Toolは、プログラム解析をLLM(Large Language Models)と統合したプログラム構造対応C-to-Rust翻訳アプローチである。
CodeNetの100%構文上の正しさとGitHubの97.78%を実現し、コードサイズ(43.70%まで)と安全でない使用率(5.75%まで)を大幅に削減した。
プロジェクトのレベルでは、ツールが完全な構文的正しさと平均意味論的正しさを78.87%達成し、実用的でスケーラブルなC-to-Rustマイグレーションの有効性を実証している。
- 参考スコア(独自算出の注目度): 16.098065606505983
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: The growing adoption of Rust for its memory safety and performance has increased the demand for effective migration of legacy C codebases. However, existing rule-based translators (e.g., \ctorust) often generate verbose, non-idiomatic code that preserves unsafe C semantics, limiting readability, maintainability, and practical adoption. Moreover, manual post-processing of such outputs is labor-intensive and rarely yields high-quality Rust code, posing a significant barrier to large-scale migration. To address these limitations, we present \tool, a program-structure-aware C-to-Rust translation approach that integrates program analysis with Large Language Models (LLMs). \tool extracts the multi-level program structure, including global symbols, function dependencies, and control- and data-flow information, and encodes these as structured textual representations injected into LLM prompts to guide translation and repair. Based on this design, \tool performs dependency-aware translation and adopts a multi-stage repair pipeline that combines rule-based and structure-guided LLM-based techniques to ensure syntactic correctness. For semantic correctness, \tool further integrates execution-based validation with structure-guided reasoning to localize and repair behavioral inconsistencies. Experimental results show that \tool achieves 100\% syntactic correctness on CodeNet and 97.78\% on GitHub, while significantly reducing code size (up to 43.70\%) and unsafe usage (to 5.75\%). At the project level, \tool achieves perfect syntactic correctness and an average semantic correctness of 78.87\%, demonstrating its effectiveness for practical and scalable C-to-Rust migration.
- Abstract(参考訳): メモリ安全性とパフォーマンスに対するRustの採用の増加により、レガシCコードベースの効率的なマイグレーションの必要性が高まっている。
しかし、既存のルールベースのトランスレータ(例: \ctorust)は、しばしば冗長で非慣用的なコードを生成し、安全でないCセマンティクスを保存し、可読性、保守性、実践的採用を制限する。
さらに、このようなアウトプットの手作業による後処理は労働集約的であり、高品質のRustコードを生成することはめったにない。
これらの制約に対処するため,プログラム解析をLLM(Large Language Models)と統合したプログラム構造対応C-to-Rust翻訳手法である \tool を提案する。
\toolは、グローバルシンボル、関数依存、制御およびデータフロー情報を含むマルチレベルプログラム構造を抽出し、LLMプロンプトに注入された構造化テキスト表現としてエンコードして、翻訳と修復をガイドする。
この設計に基づいて、 \toolは依存性を意識した翻訳を行い、ルールベースと構造誘導LPMベースの技術を組み合わせた多段階の修復パイプラインを採用して、構文的正確性を保証する。
セマンティックな正確性のために、 \toolはさらに、実行ベースの検証と構造誘導推論を統合して、振る舞いの不整合をローカライズし、修復する。
実験の結果、 \tool は CodeNet 上で 100 % の構文的正当性、GitHub 上で 97.78 % を達成する一方で、コードサイズ(43.70 % まで)と安全でない使用率(5.75 % まで)を著しく削減している。
プロジェクトレベルでは、 \tool は完全な構文的正しさと平均意味論的正しさを78.87 %達成し、実用的でスケーラブルな C-to-Rust マイグレーションの有効性を実証している。
関連論文リスト
- Project-Level C-to-Rust Translation via Synergistic Integration of Knowledge Graphs and Large Language Models [19.90921023222177]
Cコードを安全なRustに変換することは、メモリ安全性を確保する効果的な方法である。
新しいC-Rust Pointer Knowledge Graphは、グローバルの観点からポインタセマンティクスを提供する。
我々の実験では、翻訳されたRustの安全でない使用量を99.9%削減している。
論文 参考訳(メタデータ) (2025-10-13T03:09:35Z) - 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) - CRUST-Bench: A Comprehensive Benchmark for C-to-safe-Rust Transpilation [51.18863297461463]
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) - ObscuraCoder: Powering Efficient Code LM Pre-Training Via Obfuscation Grounding [60.37988508851391]
言語モデル(LM)は、コード記述ツールボックスのベースとなっている。
Code-LMの事前学習目標の変更を探求する研究は、データ効率の向上と構文とセマンティクスの相互接続性の向上を目的としており、顕著に不十分である。
本研究では,Code-LMが表面的な構文を超越し,事前学習したサンプルの効率を高めるために,難読化コードの基盤について検討する。
論文 参考訳(メタデータ) (2025-03-27T23:08:53Z) - LLM-Driven Multi-step Translation from C to Rust using Static Analysis [27.122409727034192]
レガシー言語で書かれたソフトウェアをCからRustなどのモダン言語に翻訳することは、メモリ安全性を改善する上で大きなメリットがある。
LLM駆動型C-to-Rustゼロショット変換ツールであるSACTORを2段階の翻訳手法を用いて提案する。
SACTORは、既存の方法と比較して、より自然でRustに準拠した翻訳を生成する。
論文 参考訳(メタデータ) (2025-03-16T14:05:26Z) - RustRepoTrans: Repository-level Code Translation Benchmark Targeting Rust [50.65321080814249]
RustRepoTransは、インクリメンタル翻訳をターゲットにした、最初のリポジトリレベルのコンテキストコード変換ベンチマークである。
複雑な翻訳シナリオの制約を評価するために, 7つの代表的なLLMを評価し, それらの誤差を分析した。
論文 参考訳(メタデータ) (2024-11-21T10:00:52Z) - Guess & Sketch: Language Model Guided Transpilation [59.02147255276078]
学習されたトランスパイレーションは、手作業による書き直しやエンジニアリングの取り組みに代わるものだ。
確率的ニューラルネットワークモデル(LM)は、入力毎に可塑性出力を生成するが、正確性を保証するコストがかかる。
Guess & Sketch は LM の特徴からアライメントと信頼性情報を抽出し、意味的等価性を解決するためにシンボリック・ソルバに渡す。
論文 参考訳(メタデータ) (2023-09-25T15:42:18Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。