論文の概要: Syzygy: Dual Code-Test C to (safe) Rust Translation using LLMs and Dynamic Analysis
- arxiv url: http://arxiv.org/abs/2412.14234v2
- Date: Sat, 21 Dec 2024 18:49:38 GMT
- ステータス: 翻訳完了
- システム内更新日: 2024-12-24 13:08:33.380719
- Title: Syzygy: Dual Code-Test C to (safe) Rust Translation using LLMs and Dynamic Analysis
- Title(参考訳): Syzygy: デュアルコード-テスト C to (safe) Rust Translation using LLMs and Dynamic Analysis
- Authors: Manish Shetty, Naman Jain, Adwait Godbole, Sanjit A. Seshia, Koushik Sen,
- Abstract要約: Syzygyは、C言語を安全なRustに変換する自動化アプローチである。
これは、Rustのコード翻訳を安全にする上で、これまでで最大の自動化およびテスト検証済みのCである。
- 参考スコア(独自算出の注目度): 8.361424157571468
- License: http://creativecommons.org/licenses/by-sa/4.0/
- Abstract: Despite extensive usage in high-performance, low-level systems programming applications, C is susceptible to vulnerabilities due to manual memory management and unsafe pointer operations. Rust, a modern systems programming language, offers a compelling alternative. Its unique ownership model and type system ensure memory safety without sacrificing performance. In this paper, we present Syzygy, an automated approach to translate C to safe Rust. Our technique uses a synergistic combination of LLM-driven code and test translation guided by dynamic-analysis-generated execution information. This paired translation runs incrementally in a loop over the program in dependency order of the code elements while maintaining per-step correctness. Our approach exposes novel insights on combining the strengths of LLMs and dynamic analysis in the context of scaling and combining code generation with testing. We apply our approach to successfully translate Zopfli, a high-performance compression library with ~3000 lines of code and 98 functions. We validate the translation by testing equivalence with the source C program on a set of inputs. To our knowledge, this is the largest automated and test-validated C to safe Rust code translation achieved so far.
- Abstract(参考訳): 高性能で低レベルのシステムプログラミングアプリケーションで広く使われているにもかかわらず、Cは手動のメモリ管理と安全でないポインタ操作による脆弱性の影響を受けやすい。
Rustは現代のシステムプログラミング言語であり、魅力的な代替手段を提供する。
独自のオーナシップモデルと型システムは、パフォーマンスを犠牲にすることなく、メモリ安全性を保証する。
本稿では、C言語を安全なRustに変換する自動化アプローチであるSyzygyを紹介する。
本手法は,LLM駆動型コードと動的解析による実行情報によって導かれるテスト翻訳の相乗的組み合わせを用いる。
このペア翻訳は、ステップごとの正確性を維持しながら、コード要素の依存関係順序でプログラム上のループで漸進的に実行される。
提案手法は,LLMの強みと動的解析を組み合わせたコード生成とテストのスケーリングと組み合わせという,新たな知見を提示する。
約3000行のコードと98の関数を持つ高速圧縮ライブラリであるZopfliの翻訳に本手法を適用した。
入力のセット上で、ソースCプログラムと等価性をテストすることにより、翻訳を検証する。
私たちの知る限り、これはRustのコード翻訳を安全にする上で、これまでで最大の自動化およびテスト検証済みのCです。
関連論文リスト
- 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) - ObscuraCoder: Powering Efficient Code LM Pre-Training Via Obfuscation Grounding [60.37988508851391]
言語モデル(LM)は、コード記述ツールボックスのベースとなっている。
Code-LMの事前学習目標の変更を探求する研究は、データ効率の向上と構文とセマンティクスの相互接続性の向上を目的としており、顕著に不十分である。
本研究では,Code-LMが表面的な構文を超越し,事前学習したサンプルの効率を高めるために,難読化コードの基盤について検討する。
論文 参考訳(メタデータ) (2025-03-27T23:08:53Z) - 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) - LLM-Driven Multi-step Translation from C to Rust using Static Analysis [27.122409727034192]
レガシー言語で書かれたソフトウェアをCからRustなどのモダン言語に翻訳することは、メモリ安全性を改善する上で大きなメリットがある。
LLM駆動型C-to-Rustゼロショット変換ツールであるSACTORを2段階の翻訳手法を用いて提案する。
SACTORは、既存の方法と比較して、より自然でRustに準拠した翻訳を生成する。
論文 参考訳(メタデータ) (2025-03-16T14:05:26Z) - Translating C To Rust: Lessons from a User Study [12.49361031696427]
Rustは、未使用のCプログラムが楽しむことのない保証として、プログラムの完全なメモリ安全性を提供することを目指している。
我々は,現実世界のCプログラムをRustに変換するよう人間に求めるユーザスタディについて報告する。
私たちの参加者は安全なRust翻訳を作成できますが、最先端の自動ツールではそうできません。
論文 参考訳(メタデータ) (2024-11-21T14:37:05Z) - 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) - Enabling Memory Safety of C Programs using LLMs [5.297072277460838]
C言語で書かれた低レベルのコードのメモリ安全性違反は、ソフトウェア脆弱性の主要な原因のひとつであり続けています。
このような違反を建設によって除去する方法の1つは、安全なC方言にCコードを移植することである。
このような方言は、最小限のランタイムオーバーヘッドで安全性を保証するためにプログラマが提供するアノテーションに依存している。
この移植は、プログラマに多大な負担をかける手作業であり、そのため、このテクニックの採用は限られている。
論文 参考訳(メタデータ) (2024-04-01T13:05:54Z) - Towards a Transpiler for C/C++ to Safer Rust [0.10993800728351737]
RustはMozillaが開発したプログラミング言語で、パフォーマンスと安全性に重点を置いている。
既存のC++コードベースをRustに変換する方法も注目されている。
論文 参考訳(メタデータ) (2024-01-16T10:35:59Z) - LILO: Learning Interpretable Libraries by Compressing and Documenting Code [71.55208585024198]
LILOは、反復的に合成、圧縮、文書化を行う、ニューロシンボリックなフレームワークである。
LILOは、LLM誘導プログラム合成と、Stitchから自動化された最近のアルゴリズムの進歩を組み合わせたものである。
LILOのシンセサイザーが学習した抽象化を解釈し、デプロイするのを手助けすることで、AutoDocがパフォーマンスを向上させることが分かりました。
論文 参考訳(メタデータ) (2023-10-30T17:55:02Z) - Guess & Sketch: Language Model Guided Transpilation [59.02147255276078]
学習されたトランスパイレーションは、手作業による書き直しやエンジニアリングの取り組みに代わるものだ。
確率的ニューラルネットワークモデル(LM)は、入力毎に可塑性出力を生成するが、正確性を保証するコストがかかる。
Guess & Sketch は LM の特徴からアライメントと信頼性情報を抽出し、意味的等価性を解決するためにシンボリック・ソルバに渡す。
論文 参考訳(メタデータ) (2023-09-25T15:42:18Z) - LEVER: Learning to Verify Language-to-Code Generation with Execution [64.36459105535]
本稿では,プログラムの実行結果の検証を学習することで,言語からコードへの生成を改善するシンプルな手法であるLEVERを提案する。
具体的には、LLMからサンプリングされたプログラムが、自然言語入力、プログラム自体とその実行結果に基づいて正しいか否かを判定するために、検証者を訓練する。
LEVER はベースコード LLMs (4.6% から 10.9% まで) を継続的に改善し、それらすべてに対して新しい最先端の結果を得る。
論文 参考訳(メタデータ) (2023-02-16T18:23:22Z) - ReACC: A Retrieval-Augmented Code Completion Framework [53.49707123661763]
本稿では,語彙のコピーと類似したセマンティクスを持つコード参照の両方を検索により活用する検索拡張コード補完フレームワークを提案する。
我々は,Python および Java プログラミング言語のコード補完タスクにおけるアプローチを評価し,CodeXGLUE ベンチマークで最先端のパフォーマンスを実現する。
論文 参考訳(メタデータ) (2022-03-15T08:25:08Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。