論文の概要: Large Language Model-Powered Agent for C to Rust Code Translation
- arxiv url: http://arxiv.org/abs/2505.15858v1
- Date: Wed, 21 May 2025 01:26:23 GMT
- ステータス: 翻訳完了
- システム内更新日: 2025-05-23 17:12:47.816329
- Title: Large Language Model-Powered Agent for C to Rust Code Translation
- Title(参考訳): CからRustへのコード翻訳のための大規模言語モデル駆動エージェント
- Authors: HoHyun Sim, Hyeonjoong Cho, Yeonghyeon Go, Zhoulai Fu, Ali Shokri, Binoy Ravindran,
- Abstract要約: 現代のシステムプログラミング言語であるRustは、C言語に代わるメモリセーフな代替言語として登場した。
C-to-Rust翻訳のエージェント能力の適用は、異なる課題をもたらす。
数学や常識 QA とは異なり、C-to-Rust に必要な中間ステップは十分に定義されていない。
我々は、新しい中間ステップ、仮想ファジィングに基づく等価テスト(VFT)、エージェント計画フレームワーク、LLMを利用したC-to-Rustコード翻訳のためのエージェント(LAC2R)を提案する。
- 参考スコア(独自算出の注目度): 2.182572303351317
- License: http://creativecommons.org/licenses/by-nc-sa/4.0/
- Abstract: The C programming language has been foundational in building system-level software. However, its manual memory management model frequently leads to memory safety issues. In response, a modern system programming language, Rust, has emerged as a memory-safe alternative. Moreover, automating the C-to-Rust translation empowered by the rapid advancements of the generative capabilities of LLMs is gaining growing interest for large volumes of legacy C code. Despite some success, existing LLM-based approaches have constrained the role of LLMs to static prompt-response behavior and have not explored their agentic problem-solving capability. Applying the LLM agentic capability for the C-to-Rust translation introduces distinct challenges, as this task differs from the traditional LLM agent applications, such as math or commonsense QA domains. First, the scarcity of parallel C-to-Rust datasets hinders the retrieval of suitable code translation exemplars for in-context learning. Second, unlike math or commonsense QA, the intermediate steps required for C-to-Rust are not well-defined. Third, it remains unclear how to organize and cascade these intermediate steps to construct a correct translation trajectory. To address these challenges in the C-to-Rust translation, we propose a novel intermediate step, the Virtual Fuzzing-based equivalence Test (VFT), and an agentic planning framework, the LLM-powered Agent for C-to-Rust code translation (LAC2R). The VFT guides LLMs to identify input arguments that induce divergent behaviors between an original C function and its Rust counterpart and to generate informative diagnoses to refine the unsafe Rust code. LAC2R uses the MCTS to systematically organize the LLM-induced intermediate steps for correct translation. We experimentally demonstrated that LAC2R effectively conducts C-to-Rust translation on large-scale, real-world benchmarks.
- Abstract(参考訳): C言語はシステムレベルのソフトウェアの構築に基礎を置いている。
しかし、その手動メモリ管理モデルはしばしばメモリ安全性の問題を引き起こす。
これに対して、現代のシステムプログラミング言語であるRustは、メモリセーフな代替として登場した。
さらに、LLMの生成能力の急速な進歩により、C-to-Rust翻訳が自動化されるようになり、多くのレガシーCコードに対する関心が高まっている。
いくつかの成功にもかかわらず、既存のLCMベースのアプローチは、LCMの役割を静的なプロンプト応答動作に制限し、エージェント的問題解決能力について検討していない。
C-to-Rust翻訳にLLMエージェント機能を適用することは、数学や常識QAドメインのような従来のLLMエージェントアプリケーションとは異なるため、異なる課題をもたらす。
第一に、並列C-to-Rustデータセットの不足は、テキスト内学習に適したコード翻訳例の検索を妨げる。
第二に、数学や常識 QA とは異なり、C-to-Rust に必要な中間ステップは十分に定義されていない。
第三に、これらの中間段階の編成とカスケードが正しい翻訳軌道を構築するのにどうすればよいのかは、いまだ不明である。
C-to-Rust翻訳におけるこれらの課題に対処するために,新たな中間ステップであるVirtual Fuzzing-based equivalence Test (VFT) とエージェント計画フレームワークである LLM-powered Agent for C-to-Rust code translation (LAC2R) を提案する。
VFTはLSMをガイドして、元のC関数とそのRust関数間の分岐挙動を誘導する入力引数を特定し、安全でないRustコードを洗練するための情報診断を生成する。
LAC2RはMCTSを使用してLCMによって誘導される中間段階を体系的に整理し、正しい翻訳を行う。
LAC2Rは大規模実世界のベンチマークでC-to-Rust変換を効果的に行うことを実験的に実証した。
関連論文リスト
- 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) - Syzygy: Dual Code-Test C to (safe) Rust Translation using LLMs and Dynamic Analysis [8.361424157571468]
Syzygyは、C言語を安全なRustに変換する自動化アプローチである。
これは、Rustのコード翻訳を安全にする上で、これまでで最大の自動化およびテスト検証済みのCである。
論文 参考訳(メタデータ) (2024-12-18T18:55:46Z) - 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) - Why Not Transform Chat Large Language Models to Non-English? [57.16587777261422]
非英語データの不足は、非英語大言語モデル(LLM)の開発を制限する
TransLLMは、転送問題を変換チェーン・オブ・シント(translation chain of-of- Thought)でいくつかの一般的なサブタスクに分割する。
本手法は,シングルターンデータのみを用いて,マルチターンベンチマークMT-benchにおいて,強いベースラインとChatGPTより優れる。
論文 参考訳(メタデータ) (2024-05-22T18:53:25Z) - 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)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。