論文の概要: Towards a Transpiler for C/C++ to Safer Rust
- arxiv url: http://arxiv.org/abs/2401.08264v1
- Date: Tue, 16 Jan 2024 10:35:59 GMT
- ステータス: 処理完了
- システム内更新日: 2024-01-17 14:23:59.405405
- Title: Towards a Transpiler for C/C++ to Safer Rust
- Title(参考訳): Rustを救うためのC/C++トランスパイラ
- Authors: Dhiren Tripuramallu, Swapnil Singh, Shrirang Deshmukh, Srinivas
Pinisetty, Shinde Arjun Shivaji, Raja Balusamy, Ajaganna Bandeppa
- Abstract要約: RustはMozillaが開発したプログラミング言語で、パフォーマンスと安全性に重点を置いている。
既存のC++コードベースをRustに変換する方法も注目されている。
- 参考スコア(独自算出の注目度): 0.10993800728351737
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Rust is a multi-paradigm programming language developed by Mozilla that
focuses on performance and safety. Rust code is arguably known best for its
speed and memory safety, a property essential while developing embedded
systems. Thus, it becomes one of the alternatives when developing operating
systems for embedded devices. How to convert an existing C++ code base to Rust
is also gaining greater attention. In this work, we focus on the process of
transpiling C++ code to a Rust codebase in a robust and safe manner. The manual
transpilation process is carried out to understand the different constructs of
the Rust language and how they correspond to C++ constructs. Based on the
learning from the manual transpilation, a transpilation table is created to aid
in future transpilation efforts and to develop an automated transpiler. We also
studied the existing automated transpilers and identified the problems and
inefficiencies they involved. The results of the transpilation process were
closely monitored and evaluated, showing improved memory safety without
compromising performance and reliability of the resulting codebase. The study
concludes with a comprehensive analysis of the findings, an evaluation of the
implications for future research, and recommendations for the same in this
area.
- Abstract(参考訳): rustはmozillaが開発したマルチパラダイムプログラミング言語で、パフォーマンスと安全性を重視している。
Rustコードは、組み込みシステムの開発において必須のプロパティである、そのスピードとメモリ安全性で最もよく知られている。
したがって、組み込みデバイス用のオペレーティングシステムを開発する際の代替手段の1つとなる。
既存のC++コードベースをRustに変換する方法も注目されている。
この作業では、堅牢で安全な方法でC++コードをRustコードベースにトランスパイルするプロセスに焦点を当てます。
マニュアルのトランスパイレーションプロセスは、Rust言語の異なる構造とそれらがC++の構造をどのように対応するかを理解するために実行される。
手動トランスパイルからの学習に基づき、将来のトランスパイル努力を支援し、自動トランスパイラを開発するためにトランスパイルテーブルが作成される。
また,既存の自動トランスパイラについても検討し,問題点と非効率性について検討した。
トランスパイル処理の結果を綿密に監視,評価し,性能やコードベースの信頼性を損なうことなくメモリ安全性を向上した。
本研究は,研究成果の包括的分析,今後の研究への含意評価,同分野における推奨事項について結論付けた。
関連論文リスト
- Translating C To Rust: Lessons from a User Study [12.49361031696427]
Rustは、未使用のCプログラムが楽しむことのない保証として、プログラムの完全なメモリ安全性を提供することを目指している。
我々は,現実世界のCプログラムをRustに変換するよう人間に求めるユーザスタディについて報告する。
私たちの参加者は安全なRust翻訳を作成できますが、最先端の自動ツールではそうできません。
論文 参考訳(メタデータ) (2024-11-21T14:37:05Z) - Bringing Rust to Safety-Critical Systems in Space [1.0742675209112622]
Rustは、バグ導入の可能性を劇的に削減し、より安全で安全なコードを生成することを目的としている。
この作業は、Rustで安全クリティカルな宇宙システムを開発するための一連のレコメンデーションを提供する。
論文 参考訳(メタデータ) (2024-05-28T12:48:47Z) - VERT: Verified Equivalent Rust Transpilation with Large Language Models as Few-Shot Learners [6.824327908701066]
Rustはメモリ安全性と低レベルのコントロールを組み合わせたプログラミング言語で、Cライクなパフォーマンスを提供する。
既存の作業はルールベースと大規模言語モデル(LLM)という2つのカテゴリに分類される。
私たちは、正式な正確性を保証する形で、可読性のあるRustトランスパイルを生成するツールであるVERTを紹介します。
論文 参考訳(メタデータ) (2024-04-29T16:45:03Z) - FoC: Figure out the Cryptographic Functions in Stripped Binaries with LLMs [54.27040631527217]
削除されたバイナリの暗号関数を抽出するFoCと呼ばれる新しいフレームワークを提案する。
まず、自然言語における暗号関数のセマンティクスを要約するために、バイナリ大言語モデル(FoC-BinLLM)を構築した。
次に、FoC-BinLLM上にバイナリコード類似モデル(FoC-Sim)を構築し、変更に敏感な表現を作成し、データベース内の未知の暗号関数の類似実装を検索する。
論文 参考訳(メタデータ) (2024-03-27T09:45:33Z) - Developing a High-Performance Process Mining Library with Java and
Python Bindings in Rust [0.19036571490366497]
Rustは、本質的にメモリ安全性を備えた、高性能でコンパイルされたプログラミング言語として登場した。
相互運用性を促進することで、研究者や業界がRustで新しいアルゴリズムを一度開発し、コミュニティ全体にアクセスできるようにすることができます。
論文 参考訳(メタデータ) (2024-01-25T12:59:13Z) - LILO: Learning Interpretable Libraries by Compressing and Documenting Code [71.55208585024198]
LILOは、反復的に合成、圧縮、文書化を行う、ニューロシンボリックなフレームワークである。
LILOは、LLM誘導プログラム合成と、Stitchから自動化された最近のアルゴリズムの進歩を組み合わせたものである。
LILOのシンセサイザーが学習した抽象化を解釈し、デプロイするのを手助けすることで、AutoDocがパフォーマンスを向上させることが分かりました。
論文 参考訳(メタデータ) (2023-10-30T17:55:02Z) - CP-BCS: Binary Code Summarization Guided by Control Flow Graph and
Pseudo Code [79.87518649544405]
本稿ではCP-BCSと呼ばれる制御フローグラフと擬似コード案内バイナリコード要約フレームワークを提案する。
CP-BCSは双方向の命令レベル制御フローグラフと擬似コードを利用して、専門家の知識を取り入れ、包括的なバイナリ関数の実行動作と論理意味論を学ぶ。
論文 参考訳(メタデータ) (2023-10-24T14:20:39Z) - Guess & Sketch: Language Model Guided Transpilation [59.02147255276078]
学習されたトランスパイレーションは、手作業による書き直しやエンジニアリングの取り組みに代わるものだ。
確率的ニューラルネットワークモデル(LM)は、入力毎に可塑性出力を生成するが、正確性を保証するコストがかかる。
Guess & Sketch は LM の特徴からアライメントと信頼性情報を抽出し、意味的等価性を解決するためにシンボリック・ソルバに渡す。
論文 参考訳(メタデータ) (2023-09-25T15:42:18Z) - Fixing Rust Compilation Errors using LLMs [2.1781086368581932]
Rustプログラミング言語は、C/C++のような従来の安全でない代替言語よりも、低レベルのシステムプログラミング言語に実行可能な選択肢として、自らを確立している。
本稿では,Large Language Models(LLMs)の創発的機能を活用し,Rustコンパイルエラーの修正を自動的に提案するRustAssistantというツールを提案する。
RustAssistantは、人気のあるオープンソースRustリポジトリの実際のコンパイルエラーに対して、約74%の驚くべきピーク精度を達成することができる。
論文 参考訳(メタデータ) (2023-08-09T18:30:27Z) - CONCORD: Clone-aware Contrastive Learning for Source Code [64.51161487524436]
セルフ教師付き事前トレーニングは、多くのダウンストリームSEタスクに価値のあるジェネリックコード表現を学ぶための牽引役になった。
汎用的な表現学習のために、開発者が日々どのようにコードをコーディングするかは、要因としても不可欠である、と私たちは主張する。
特に,表現空間に良性クローンを近づける自己教師型コントラスト学習戦略であるCONCORDを提案する。
論文 参考訳(メタデータ) (2023-06-05T20:39:08Z) - ReACC: A Retrieval-Augmented Code Completion Framework [53.49707123661763]
本稿では,語彙のコピーと類似したセマンティクスを持つコード参照の両方を検索により活用する検索拡張コード補完フレームワークを提案する。
我々は,Python および Java プログラミング言語のコード補完タスクにおけるアプローチを評価し,CodeXGLUE ベンチマークで最先端のパフォーマンスを実現する。
論文 参考訳(メタデータ) (2022-03-15T08:25:08Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。