論文の概要: SafeTrans: LLM-assisted Transpilation from C to Rust
- arxiv url: http://arxiv.org/abs/2505.10708v1
- Date: Thu, 15 May 2025 21:05:33 GMT
- ステータス: 翻訳完了
- システム内更新日: 2025-05-19 14:36:13.574727
- Title: SafeTrans: LLM-assisted Transpilation from C to Rust
- Title(参考訳): SafeTrans: LLMによるCからRustへのトランスパイレーション
- Authors: Muhammad Farrukh, Smeet Shah, Baris Coskun, Michalis Polychronakis,
- Abstract要約: Rustは、Cの"システム"プログラミング言語としてのメモリセーフな代替として、強力な競争相手である。
本稿では,大規模な言語モデル(LLM)がRustへのCコードの自動コンパイルを実現する可能性を評価する。
SafeTrans は LLM を使って,C コードを Rust にトランスパイルするフレームワークである。
- 参考スコア(独自算出の注目度): 5.6274106543826585
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Rust is a strong contender for a memory-safe alternative to C as a "systems" programming language, but porting the vast amount of existing C code to Rust is a daunting task. In this paper, we evaluate the potential of large language models (LLMs) to automate the transpilation of C code to idiomatic Rust, while ensuring that the generated code mitigates any memory-related vulnerabilities present in the original code. To that end, we present the design and implementation of SafeTrans, a framework that uses LLMs to i) transpile C code into Rust and ii) iteratively fix any compilation and runtime errors in the resulting code. A key novelty of our approach is the introduction of a few-shot guided repair technique for translation errors, which provides contextual information and example code snippets for specific error types, guiding the LLM toward the correct solution. Another novel aspect of our work is the evaluation of the security implications of the transpilation process, i.e., whether potential vulnerabilities in the original C code have been properly addressed in the translated Rust code. We experimentally evaluated SafeTrans with six leading LLMs and a set of 2,653 C programs accompanied by comprehensive unit tests, which were used for validating the correctness of the translated code. Our results show that our iterative repair strategy improves the rate of successful translations from 54% to 80% for the best-performing LLM (GPT-4o), and that all types of identified vulnerabilities in the original C code are effectively mitigated in the translated Rust code.
- Abstract(参考訳): Rustは、"システム"プログラミング言語としてのCのメモリセーフな代替として強力な競合相手ですが、既存のCコードをRustに移植するのは、大変な作業です。
本稿では,生成したコードが元のコードに存在するメモリ関連の脆弱性を軽減し,C言語をRustに自動変換する大規模言語モデル(LLM)の可能性を評価する。
そこで, LLM を用いた SafeTrans の設計と実装について紹介する。
i)CコードをRustに変換し、
ii) コンパイルエラーや実行時のエラーを、結果のコードで繰り返し修正する。
提案手法の重要な特徴は,文脈情報や特定のエラータイプに対するサンプルコードスニペットを提供し,LLMを正しい解へと導く,翻訳エラーに対する数発のガイド付き修復手法の導入である。
私たちの研究のもうひとつの新しい側面は、トランスパイレーションプロセスのセキュリティへの影響、すなわち、オリジナルのCコードの潜在的な脆弱性が、翻訳されたRustコードで適切に対処されているかどうかを評価することです。
我々はSafeTransを6つのLLMと2,653個のCプログラムで評価した。
我々の反復的修復戦略は、最高の性能のLDM(GPT-4o)において、54%から80%の翻訳率向上を実現し、元のCコードのすべてのタイプの脆弱性が、翻訳されたRustコードで効果的に軽減されることを示す。
関連論文リスト
- 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) - 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) - 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) - HexaCoder: Secure Code Generation via Oracle-Guided Synthetic Training Data [60.75578581719921]
大規模言語モデル(LLM)は、自動コード生成に大きな可能性を示している。
最近の研究は、多くのLLM生成コードが深刻なセキュリティ脆弱性を含んでいることを強調している。
我々は,LLMがセキュアなコードを生成する能力を高めるための新しいアプローチであるHexaCoderを紹介する。
論文 参考訳(メタデータ) (2024-09-10T12:01:43Z) - FoC: Figure out the Cryptographic Functions in Stripped Binaries with LLMs [51.898805184427545]
削除されたバイナリの暗号関数を抽出するFoCと呼ばれる新しいフレームワークを提案する。
まず、自然言語における暗号関数のセマンティクスを要約するために、バイナリ大言語モデル(FoC-BinLLM)を構築した。
次に、FoC-BinLLM上にバイナリコード類似モデル(FoC-Sim)を構築し、変更に敏感な表現を作成し、データベース内の未知の暗号関数の類似実装を検索する。
論文 参考訳(メタデータ) (2024-03-27T09:45:33Z) - CodeAttack: Revealing Safety Generalization Challenges of Large Language Models via Code Completion [117.178835165855]
本稿では,自然言語入力をコード入力に変換するフレームワークであるCodeAttackを紹介する。
我々の研究は、コード入力に対するこれらのモデルの新たな、普遍的な安全性の脆弱性を明らかにした。
CodeAttackと自然言語の分布ギャップが大きくなると、安全性の一般化が弱くなる。
論文 参考訳(メタデータ) (2024-03-12T17:55:38Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。