論文の概要: Project-Level C-to-Rust Translation via Synergistic Integration of Knowledge Graphs and Large Language Models
- arxiv url: http://arxiv.org/abs/2510.10956v1
- Date: Mon, 13 Oct 2025 03:09:35 GMT
- ステータス: 翻訳完了
- システム内更新日: 2025-10-14 18:06:30.170647
- Title: Project-Level C-to-Rust Translation via Synergistic Integration of Knowledge Graphs and Large Language Models
- Title(参考訳): 知識グラフと大規模言語モデルの相乗的統合によるプロジェクトレベルC-to-Rust翻訳
- Authors: Zhiqiang Yuan, Wenjun Mao, Zhuo Chen, Xiyue Shang, Chong Wang, Yiling Lou, Xin Peng,
- Abstract要約: Cコードを安全なRustに変換することは、メモリ安全性を確保する効果的な方法である。
新しいC-Rust Pointer Knowledge Graphは、グローバルの観点からポインタセマンティクスを提供する。
我々の実験では、翻訳されたRustの安全でない使用量を99.9%削減している。
- 参考スコア(独自算出の注目度): 19.90921023222177
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Translating C code into safe Rust is an effective way to ensure its memory safety. Compared to rule-based translation which produces Rust code that remains largely unsafe, LLM-based methods can generate more idiomatic and safer Rust code because LLMs have been trained on vast amount of human-written idiomatic code. Although promising, existing LLM-based methods still struggle with project-level C-to-Rust translation. They typically partition a C project into smaller units (\eg{} functions) based on call graphs and translate them bottom-up to resolve program dependencies. However, this bottom-up, unit-by-unit paradigm often fails to translate pointers due to the lack of a global perspective on their usage. To address this problem, we propose a novel C-Rust Pointer Knowledge Graph (KG) that enriches a code-dependency graph with two types of pointer semantics: (i) pointer-usage information which record global behaviors such as points-to flows and map lower-level struct usage to higher-level units; and (ii) Rust-oriented annotations which encode ownership, mutability, nullability, and lifetime. Synthesizing the \kg{} with LLMs, we further propose \ourtool{}, which implements a project-level C-to-Rust translation technique. In \ourtool{}, the \kg{} provides LLMs with comprehensive pointer semantics from a global perspective, thus guiding LLMs towards generating safe and idiomatic Rust code from a given C project. Our experiments show that \ourtool{} reduces unsafe usages in translated Rust by 99.9\% compared to both rule-based translation and traditional LLM-based rewriting, while achieving an average 29.3\% higher functional correctness than those fuzzing-enhanced LLM methods.
- Abstract(参考訳): Cコードを安全なRustに変換することは、メモリ安全性を確保する効果的な方法である。
ほとんど安全でないRustコードを生成するルールベースの翻訳と比較して、LLMベースのメソッドは、大量の人間による慣用コードでトレーニングされているため、より慣用的で安全なRustコードを生成することができる。
有望ではあるが、既存のLCMベースの手法はプロジェクトレベルのC-to-Rust翻訳に苦戦している。
通常は、コールグラフに基づいてCプロジェクトを小さな単位(\eg{}関数)に分割し、ボトムアップでプログラム依存を解決する。
しかしながら、このボトムアップのユニット・バイ・ユニットのパラダイムは、その使用に関するグローバルな視点が欠如しているため、ポインタの翻訳に失敗することが多い。
この問題に対処するために、コード依存グラフを2種類のポインタセマンティクスで強化する新しいC-Rust Pointer Knowledge Graph (KG)を提案する。
一 ポイント・ツー・フロー等のグローバルな行動を記録し、下層構造体の使用量を上位単位にマップするポインタ利用情報
(ii) オーナシップ、ミュータビリティ、null許容性、ライフタイムをエンコードするRust指向アノテーション。
LLM を用いて \kg{} を合成し,プロジェクトレベルの C-to-Rust 翻訳手法を実装した \ourtool{} を提案する。
これは、あるCプロジェクトから安全で慣用的なRustコードを生成するためのLLMを導くものである。
我々の実験は,ルールベースの翻訳と従来のLLMベースの書き換えと比較して,変換されたRustの安全でない使用量を99.9 %削減し,ファジィ強化されたLLMメソッドよりも平均29.3 %高い機能的正当性を達成することを示した。
関連論文リスト
- Integrating Rules and Semantics for LLM-Based C-to-Rust Translation [34.61632926526051]
我々は、翻訳を強化するためにRulEs aNd sEmanticsを統合したLLMベースのフレームワークであるIRENEを提案する。
IRENEは3つのモジュールから構成される。1) 静的アナライザから生成されたルールに基づいて関連する翻訳例を選択するルール拡張された検索モジュールで、Rustルールの処理を改善し、2) LLMを誘導してCコードのセマンティック理解を強化する構造化要約モジュール、3) コンパイラ診断を利用して反復的に翻訳を洗練するエラー駆動翻訳モジュール。
論文 参考訳(メタデータ) (2025-08-09T10:41:03Z) - EvoC2Rust: A Skeleton-guided Framework for Project-Level C-to-Rust Translation [17.560908544319094]
EvoC2Rustは、完全なCプロジェクトを同等のRustに変換する自動化フレームワークである。
プロジェクトレベルの翻訳には骨格誘導翻訳戦略を採用している。
論文 参考訳(メタデータ) (2025-08-06T10:31:23Z) - Language Bottleneck Models: A Framework for Interpretable Knowledge Tracing and Beyond [55.984684518346924]
我々は、知識追跡を逆問題として再考する: 過去の回答を説明できる最小限の自然言語要約を学習し、将来の回答を予測できる。
我々のLanguage Bottleneck Model(LBM)は、解釈可能な知識要約を書くエンコーダLLMと、その要約テキストのみを使用して生徒の反応を再構成し予測しなければならないフリーズデコーダLLMで構成されている。
合成算術ベンチマークと大規模Eediデータセットの実験により、LBMは最先端のKT法と直接LLM法の精度に匹敵する一方で、受講者軌道のオーダーを少なくすることを示した。
論文 参考訳(メタデータ) (2025-06-20T13:21:14Z) - 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 [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) - 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) - Building Accurate Translation-Tailored LLMs with Language Aware Instruction Tuning [57.323716555996114]
オフターゲット翻訳は、特に低リソース言語では未解決の問題である。
最近の研究は、翻訳命令の機能を強調するために高度なプロンプト戦略を設計するか、LLMの文脈内学習能力を活用している。
本研究では,LLMの命令追従能力(特に翻訳方向)を向上させるために,2段階の微調整アルゴリズムを設計する。
論文 参考訳(メタデータ) (2024-03-21T13:47:40Z) - Chain-of-Symbol Prompting Elicits Planning in Large Langauge Models [47.210211555783836]
自然言語計画と行動(Natala)という,一連の新しいタスクからなるベンチマークを提案する。
現在、ChatGPTのようなLLMには複雑な計画能力がないことが分かっています。
本稿では,凝縮した記号空間表現を持つ複雑な環境を表現するCoS(Chain-of-Symbol Prompting)を提案する。
論文 参考訳(メタデータ) (2023-05-17T15:07:50Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。