論文の概要: Req2Rust: A Requirements-Guided Agent Harness for Project-Level C++-to-Rust Migration
- arxiv url: http://arxiv.org/abs/2611.07442v1
- Date: Thu, 05 Nov 2026 04:40:17 GMT
- ステータス: 翻訳完了
- システム内更新日: 2026-11-06 21:50:50.547917
- Title: Req2Rust: A Requirements-Guided Agent Harness for Project-Level C++-to-Rust Migration
- Title(参考訳): Req2Rust: プロジェクトレベルのC++-to-Rustマイグレーションに必須のエージェントハーネス
- Abstract要約: ソース構造を保存するマイグレーションは、低レベルの振る舞いを追跡することができるが、ソース言語の組織、安全でないイディオム、プロジェクトの仮定をRustに運ぶこともできる。
本稿では,プロジェクトレベルのLLMベースのC++-to-RustマイグレーションハーネスであるReq2Rustについて述べる。
両方の設定でビルド可能なRustクレートを生成し、一般的なプロジェクトでは69.5%から91.9%に、Openharmonyモジュールでは45.4%から87.9%に改善されている。
- 参考スコア(独自算出の注目度): 16.639847180077926
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Memory-safety concerns make Rust an attractive target for modernizing legacy C/C++ systems, yet project-level C++ migration must balance semantic fidelity with Rust-oriented reconstruction. Source-structure-preserving migration can track low-level behavior, but it can also carry source-language organization, unsafe idioms, and project assumptions into Rust. Direct agent-based translation gives the model more freedom to construct a Rust project, but semantic coverage depends on the model identifying the source behaviors that must be preserved. This problem is especially acute for C++, where source behaviors are often hidden in object models, destructor-driven lifetime protocols, and other hard-to-localize C++ semantics. This paper presents Req2Rust, the first project-level LLM-based C++-to-Rust migration harness. Req2Rust first derives an evidence-grounded Migration Requirements Specification (MRS) that records the behaviors and constraints that must be preserved. It then synthesizes a Rust Design Specification (RDS) and realizes it as an initial Rust project. Because real projects contain implementation details and idioms that only become visible during build and validation, Req2Rust treats the initial Rust project as an executable refinement state. Compiler, semantic, and unsafe-reduction validators produce validation reports for improving buildability, behavioral alignment, and unsafe usage. We evaluate Req2Rust on general C++ projects and modules from the large-scale Openharmony codebase against a ClaudeCode baseline. Req2Rust produces buildable Rust crates in both settings and improves test pass rate from 69.5% to 91.9% on general projects and from 45.4% to 87.9% on Openharmony modules.
- Abstract(参考訳): メモリ安全性の懸念により、RustはレガシーC/C++システムの近代化の魅力的なターゲットとなっているが、プロジェクトレベルのC++マイグレーションは、セマンティックフィリティとRust指向の再構築のバランスを取る必要がある。
ソース構造を保存するマイグレーションは、低レベルの振る舞いを追跡することができるが、ソース言語の組織、安全でないイディオム、プロジェクトの仮定をRustに運ぶこともできる。
直接エージェントベースの翻訳は、Rustプロジェクトを構築する自由をモデルに与えるが、セマンティックカバレッジは、保存しなければならないソースの振る舞いを特定するモデルに依存する。
この問題は、ソースの振る舞いがオブジェクトモデルやデストラクタ駆動のライフタイムプロトコル、その他ローカル化の難しいC++セマンティクスに隠されることがしばしばあるC++では特に難しい。
本稿では,プロジェクトレベルのLLMベースのC++-to-RustマイグレーションハーネスであるReq2Rustについて述べる。
Req2Rustはまず、保存すべき動作と制約を記録するエビデンスベースのマイグレーション要件仕様(MRS)を導出する。
その後、Rust Design Specification(RDS)を合成し、最初のRustプロジェクトとして実現した。
実際のプロジェクトには、ビルドとバリデーションの間だけ見える実装の詳細とイディオムが含まれているため、Req2Rustは、初期Rustプロジェクトを実行可能なリファインメントステートとして扱う。
コンパイラ、セマンティック、安全でない推論バリデータは、ビルド性、振る舞いアライメント、安全でない使用法を改善するためのバリデーションレポートを生成する。
我々は、大規模なOpenharmonyコードベースの一般的なC++プロジェクトとモジュールに対して、ClaudeCodeベースラインに対してReq2Rustを評価する。
Req2Rustは両方の設定でビルド可能なRustクレートを生成し、一般的なプロジェクトでは69.5%から91.9%に、Openharmonyモジュールでは45.4%から87.9%に改善した。
関連論文リスト
- SpeC2Rust: Specification-Driven Repository-Level C-to-Rust Translation [8.670412878339153]
SpeC2RustはリポジトリレベルのC-to-Rust変換のための仕様駆動パイプラインである。
Cリポジトリを意味的に一貫性のあるモジュールに分解し、永続的なリポジトリとモジュールレベルの仕様を生成する。
オリジナルのエンドツーエンドテストのコンパイルとパスを行うRustプロジェクトを生成する。
論文 参考訳(メタデータ) (2026-10-25T08:20:30Z) - His2Trans: A Skeleton First Framework for Self Evolving C to Rust Translation with Historical Retrieval [45.246293154277886]
His2Transは、決定論的でビルド対応のスケルトンと自己進化的な知識抽出を組み合わせて、安定したインクリメンタルマイグレーションをサポートするフレームワークである。
産業用OpenHarmonyモジュールの実験では、His2Transが99.75%インクリメンタルコンパイルパスレートに達した。
論文 参考訳(メタデータ) (2026-03-03T05:42:08Z) - RustAssure: Differential Symbolic Testing for LLM-Transpiled C-to-Rust Code [2.1413732583497826]
Rustは、ソフトウェアのセキュリティを大幅に改善するメモリセーフなプログラミング言語である。
Cのような安全でないメモリ言語で書かれた既存のものは、Rustの改善された安全性保証を活用するために、まずRustにコンパイルされなければならない。
RustAssureは、Large Language Models(LLM)を使用して既存のCをRustに自動的にトランスパイルするシステムを提供する。
論文 参考訳(メタデータ) (2025-10-08T22:52:34Z) - 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) - ReF Decompile: Relabeling and Function Call Enhanced Decompile [50.86228893636785]
逆コンパイルの目標は、コンパイルされた低レベルコード(アセンブリコードなど)を高レベルプログラミング言語に変換することである。
このタスクは、脆弱性識別、マルウェア分析、レガシーソフトウェアマイグレーションなど、さまざまなリバースエンジニアリングアプリケーションをサポートする。
論文 参考訳(メタデータ) (2025-02-17T12:38:57Z) - RustRepoTrans: Repository-level Code Translation Benchmark Targeting Rust [50.65321080814249]
RustRepoTransは、インクリメンタル翻訳をターゲットにした、最初のリポジトリレベルのコンテキストコード変換ベンチマークである。
複雑な翻訳シナリオの制約を評価するために, 7つの代表的なLLMを評価し, それらの誤差を分析した。
論文 参考訳(メタデータ) (2024-11-21T10:00:52Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。