論文の概要: LLM-Driven Multi-step Translation from C to Rust using Static Analysis
- arxiv url: http://arxiv.org/abs/2503.12511v1
- Date: Sun, 16 Mar 2025 14:05:26 GMT
- ステータス: 翻訳完了
- システム内更新日: 2025-03-18 16:00:24.256599
- Title: LLM-Driven Multi-step Translation from C to Rust using Static Analysis
- Title(参考訳): 静的解析によるCからRustへのLLM駆動多段階翻訳
- Authors: Tianyang Zhou, Haowen Lin, Somesh Jha, Mihai Christodorescu, Kirill Levchenko, Varun Chandrasekaran,
- Abstract要約: レガシー言語で書かれたソフトウェアをCからRustなどのモダン言語に翻訳することは、メモリ安全性を改善する上で大きなメリットがある。
LLM駆動型C-to-Rustゼロショット変換ツールであるSACTORを2段階の翻訳手法を用いて提案する。
SACTORは、既存の方法と比較して、より自然でRustに準拠した翻訳を生成する。
- 参考スコア(独自算出の注目度): 27.122409727034192
- License:
- Abstract: Translating software written in legacy languages to modern languages, such as C to Rust, has significant benefits in improving memory safety while maintaining high performance. However, manual translation is cumbersome, error-prone, and produces unidiomatic code. Large language models (LLMs) have demonstrated promise in producing idiomatic translations, but offer no correctness guarantees as they lack the ability to capture all the semantics differences between the source and target languages. To resolve this issue, we propose SACTOR, an LLM-driven C-to-Rust zero-shot translation tool using a two-step translation methodology: an "unidiomatic" step to translate C into Rust while preserving semantics, and an "idiomatic" step to refine the code to follow Rust's semantic standards. SACTOR utilizes information provided by static analysis of the source C program to address challenges such as pointer semantics and dependency resolution. To validate the correctness of the translated result from each step, we use end-to-end testing via the foreign function interface to embed our translated code segment into the original code. We evaluate the translation of 200 programs from two datasets and two case studies, comparing the performance of GPT-4o, Claude 3.5 Sonnet, Gemini 2.0 Flash, Llama 3.3 70B and DeepSeek-R1 in SACTOR. Our results demonstrate that SACTOR achieves high correctness and improved idiomaticity, with the best-performing model (DeepSeek-R1) reaching 93% and (GPT-4o, Claude 3.5, DeepSeek-R1) reaching 84% correctness (on each dataset, respectively), while producing more natural and Rust-compliant translations compared to existing methods.
- Abstract(参考訳): レガシー言語で書かれたソフトウェアをCからRustなどのモダン言語に翻訳することは、高性能を維持しながらメモリ安全性を向上させる上で大きなメリットがある。
しかし、手動翻訳は面倒でエラーを起こし、単音素コードを生成する。
大規模言語モデル(LLM)は、慣用的な翻訳を作成することを約束しているが、ソースとターゲット言語間のすべてのセマンティクスの違いをキャプチャする能力がないため、正確性を保証するものではない。
この問題を解決するために,私たちは,LLM駆動のC-to-Rustゼロショット翻訳ツールであるSACTORを提案する。2ステップの翻訳手法 – セマンティクスを保ちながらCをRustに変換する"慣用的な"ステップと,Rustのセマンティクス標準に従うためのコードを洗練するための"慣用的な"ステップだ。
SACTORは、ソースCプログラムの静的解析によって提供される情報を利用して、ポインタセマンティクスや依存性解決といった課題に対処する。
各ステップの翻訳結果の正当性を検証するため、外部関数インターフェースを介してエンドツーエンドテストを使用して、翻訳されたコードセグメントを元のコードに埋め込む。
GPT-4o, Claude 3.5 Sonnet, Gemini 2.0 Flash, Llama 3.3 70B, DeepSeek-R1をSACTORで比較した。
以上の結果から,SACTORの精度は向上し,優れた性能モデル(DeepSeek-R1)が93%,(GPT-4o,Claude 3.5,DeepSeek-R1)が84%,従来の手法よりも自然かつRustに準拠した翻訳が得られた。
関連論文リスト
- 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) - Scalable, Validated Code Translation of Entire Projects using Large Language Models [13.059046327936393]
大規模言語モデル(LLM)は、慣用的なコードを生成する能力のため、コード翻訳において有望であることを示す。
既存の作品では、100行以上のコードに対する翻訳の成功率が低下している。
私たちは、コードを独立した翻訳が可能な小さなコードフラグメントに分割する、トランスフォーメーションのためのモジュラーアプローチを開発しています。
我々は,最大6,600行のコードと369の関数に対して,信頼性の高いRustを一貫して生成できることを示し,平均73%の関数をI/O同値で検証した。
論文 参考訳(メタデータ) (2024-12-11T02:31:46Z) - Enhancing Cross-Language Code Translation via Task-Specific Embedding Alignment in Retrieval-Augmented Generation [1.64043572114825]
本稿では,タスク固有の埋め込みアライメントを統合することで,FortranからC++へのクロス言語コード変換を強化する手法を提案する。
我々の戦略は、CodeBLEUメトリックによって定量化されているように、検索モデルを翻訳品質を最大化する目的と直接一致させる。
これらのCodeBLEU最適化埋め込みをRAGフレームワークに統合することにより、検索精度とコード生成品質の両方を大幅に向上させる。
論文 参考訳(メタデータ) (2024-12-06T16:22:32Z) - 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) - Multilingual Contrastive Decoding via Language-Agnostic Layers Skipping [60.458273797431836]
対照的なレイヤ(DoLa)によるデコーディングは、大規模言語モデルの生成品質を改善するために設計されている。
このアプローチは英語以外のタスクではうまくいきません。
モデルの前方通過における言語遷移に関する従来の解釈可能性の研究から着想を得て,改良されたコントラスト復号アルゴリズムを提案する。
論文 参考訳(メタデータ) (2024-07-15T15:14:01Z) - Towards Translating Real-World Code with LLMs: A Study of Translating to Rust [13.743967357458287]
大規模言語モデル(LLM)は、ほとんどのプログラミング言語でコードを記述する能力のため、コード翻訳において有望であることを示す。
実世界のオープンソースプロジェクトから抽出したコードについて検討する。
FLOURINEは、差分ファジィを使用して、Rust翻訳が元のソースプログラムと同等のI/Oかどうかをチェックする、エンドツーエンドのコード変換ツールである。
論文 参考訳(メタデータ) (2024-05-19T10:54:03Z) - Building Accurate Translation-Tailored LLMs with Language Aware Instruction Tuning [57.323716555996114]
オフターゲット翻訳は、特に低リソース言語では未解決の問題である。
最近の研究は、翻訳命令の機能を強調するために高度なプロンプト戦略を設計するか、LLMの文脈内学習能力を活用している。
本研究では,LLMの命令追従能力(特に翻訳方向)を向上させるために,2段階の微調整アルゴリズムを設計する。
論文 参考訳(メタデータ) (2024-03-21T13:47:40Z) - Mitigating Hallucinations and Off-target Machine Translation with
Source-Contrastive and Language-Contrastive Decoding [53.84948040596055]
修正された復号化目標を用いて、障害ケースを緩和する2つの関連手法を提案する。
大規模多言語モデルM2M-100 (418M) とSMaLL-100の実験は、これらの手法が幻覚やターゲット外の翻訳を抑制することを示した。
論文 参考訳(メタデータ) (2023-09-13T17:15:27Z) - Strategies for improving low resource speech to text translation relying
on pre-trained ASR models [59.90106959717875]
本稿では,テキスト翻訳(ST)における低音源音声の性能向上のための技術と知見について述べる。
本研究は,英語とポルトガル語,タマシェク語とフランス語の2つの言語対について,シミュレーションおよび実低資源設定について実験を行った。
論文 参考訳(メタデータ) (2023-05-31T21:58:07Z) - On the Off-Target Problem of Zero-Shot Multilingual Neural Machine
Translation [104.85258654917297]
識別対象言語信号の符号化に失敗すると、オフターゲットとなり、語彙距離が近くなることが判明した。
多言語語彙構築のための言語認識語彙共有(LAVS)を提案する。
我々は11言語で多言語機械翻訳ベンチマーク実験を行った。
論文 参考訳(メタデータ) (2023-05-18T12:43:31Z) - CROP: Zero-shot Cross-lingual Named Entity Recognition with Multilingual
Labeled Sequence Translation [113.99145386490639]
言語間NERは、整列した言語間表現や機械翻訳結果を通じて、言語間で知識を伝達することができる。
ゼロショット言語間NERを実現するために,クロスランガル・エンティティ・プロジェクション・フレームワーク(CROP)を提案する。
多言語ラベル付きシーケンス翻訳モデルを用いて、タグ付けされたシーケンスをターゲット言語に投影し、ターゲットの原文にラベル付けする。
論文 参考訳(メタデータ) (2022-10-13T13:32:36Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。