論文の概要: A Mixed-Methods Study on the Implications of Unsafe Rust for Interoperation, Encapsulation, and Tooling
- arxiv url: http://arxiv.org/abs/2404.02230v3
- Date: Sat, 19 Oct 2024 17:45:18 GMT
- ステータス: 翻訳完了
- システム内更新日: 2024-10-22 13:14:23.043184
- Title: A Mixed-Methods Study on the Implications of Unsafe Rust for Interoperation, Encapsulation, and Tooling
- Title(参考訳): 相互運用・カプセル化・ツーリングにおける安全でないラストの影響に関する混合手法による研究
- Authors: Ian McCormack, Tomas Dougan, Sam Estep, Hanan Hibshi, Jonathan Aldrich, Joshua Sunshine,
- Abstract要約: Rust開発者は、マルチ言語アプリケーション内の健全性を保証するための検証ツールが必要である。
開発者は、外部関数呼び出しの理由、現在使用しているツールの制限、安全でないコードを使用する動機、そしてそれをカプセル化する理由について調査する。
- 参考スコア(独自算出の注目度): 2.2463451968497425
- License:
- Abstract: The Rust programming language restricts aliasing to provide static safety guarantees. However, in certain situations, developers need to bypass these guarantees by using a set of unsafe features. If they are used incorrectly, these features can reintroduce the types of safety issues that Rust was designed to prevent. We seek to understand how current development tools can be improved to better assist developers who find it necessary to interact with unsafe code. To that end, we study how developers reason about foreign function calls, the limitations of the tools that they currently use, their motivations for using unsafe code, and how they reason about encapsulating it. We conducted a mixed-methods investigation consisting of semi-structured interviews with 19 developers, followed by a survey that reached an additional 160 developers. Our participants were motivated to use unsafe code when they perceived that there was no alternative, and most avoided using it. However, limited tooling support for foreign function calls made participants uncertain about their design choices, and certain foreign aliasing and concurrency patterns were difficult to encapsulate. To overcome these challenges, Rust developers need verification tools that can provide guarantees of soundness within multi-language applications.
- Abstract(参考訳): Rustプログラミング言語は、静的安全性を保証するためにエイリアスを制限する。
しかし、ある状況では、開発者は安全でない一連の機能を使用することで、これらの保証を回避する必要がある。
正しく使用されていない場合、これらの機能は、Rustが防止するために設計した安全問題のタイプを再導入することができる。
私たちは、安全でないコードと対話するために必要な開発者を支援するために、現在の開発ツールをどのように改善できるかを理解しようとしています。
その目的のために,開発者が外部関数呼び出しを理由付ける方法,現在使用しているツールの制限,安全でないコードを使用するモチベーション,それをカプセル化する理由について検討する。
半構造化された19人の開発者へのインタビューと、さらに160人の開発者を対象にした調査を行った。
参加者は、代替手段がないと感じたときに、安全でないコードを使うことを動機付けました。
しかし, 外部関数呼び出しに対するツールサポートが限られていたため, 参加者は設計選択について不確実であり, 特定の外部エイリアスや並行処理パターンをカプセル化することが困難であった。
これらの課題を克服するために、Rust開発者は、マルチ言語アプリケーション内の健全性の保証を提供する検証ツールが必要である。
関連論文リスト
- Characterizing Unsafe Code Encapsulation In Real-world Rust Systems [2.285834282327349]
内部アンセーフは、システムソフトウェア開発においてRustコミュニティによって提唱される重要な設計パラダイムである。
Rustコンパイラは、安全でないコードを含む安全な関数の健全性を検証することができない。
安全でないコードの本質的な使用法とカプセル化をモデル化するための,新しいアンセーフティアイソレーショングラフを提案する。
論文 参考訳(メタデータ) (2024-06-12T06:59:51Z) - 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) - A Study of Undefined Behavior Across Foreign Function Boundaries in Rust Libraries [2.359557447960552]
Rustは、制限がはるかに弱い言語との相互運用に頻繁に使用される。
MiriLLIは、既存のRustとLLVMインタプリタを使用して、複数言語アプリケーションを共同で実行するツールです。
論文 参考訳(メタデータ) (2024-04-17T18:12:05Z) - ToolSword: Unveiling Safety Issues of Large Language Models in Tool
Learning Across Three Stages [46.86723087688694]
ツール学習は,現実のシナリオにおいて,基本的なアプローチあるいは大規模言語モデル(LLM)のデプロイとして広く認識されている。
$ToolSword$は、ツール学習におけるLLMに関連する安全性の問題を調べるためのフレームワークである。
11のオープンソースおよびクローズドソース LLM で実施された実験は、ツール学習における永続的な安全性上の課題を明らかにしている。
論文 参考訳(メタデータ) (2024-02-16T15:19:46Z) - All Languages Matter: On the Multilingual Safety of Large Language Models [96.47607891042523]
我々は、大規模言語モデル(LLM)のための最初の多言語安全ベンチマークを構築した。
XSafetyは、複数の言語ファミリーにまたがる10言語にわたる14種類の一般的な安全問題をカバーしている。
本稿では,ChatGPTの多言語安全性向上のための簡易かつ効果的なプロンプト手法を提案する。
論文 参考訳(メタデータ) (2023-10-02T05:23:34Z) - 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) - Is unsafe an Achilles' Heel? A Comprehensive Study of Safety
Requirements in Unsafe Rust Programming [4.981203415693332]
Rustは、効率性とメモリ安全性を重視した、新しく、強く型付けされたプログラミング言語である。
標準ライブラリの現在の安全でないAPIドキュメントには、一貫性や不十分さなど、さまざまなバリエーションがあった。
Rustのセキュリティを強化するために、ユーザに従うべき安全要件の体系的な記述をリストアップするために、安全でないAPIドキュメントを提案する。
論文 参考訳(メタデータ) (2023-08-09T08:16:10Z) - A Static Evaluation of Code Completion by Large Language Models [65.18008807383816]
単純なプログラミング問題に対するモデル生成コードの機能的正当性を評価するために,実行ベースベンチマークが提案されている。
プログラムを実行せずにエラーを検出するlinterのような静的解析ツールは、コード生成モデルを評価するために十分に研究されていない。
抽象構文木を利用して,Pythonのコード補完における静的エラーを定量化する静的評価フレームワークを提案する。
論文 参考訳(メタデータ) (2023-06-05T19:23:34Z) - Interactive Code Generation via Test-Driven User-Intent Formalization [60.90035204567797]
大きな言語モデル(LLM)は、非公式な自然言語(NL)の意図からコードを生成する。
自然言語は曖昧であり、形式的な意味論が欠けているため、正確性の概念を定義するのは難しい。
言語に依存しない抽象アルゴリズムと具体的な実装TiCoderについて述べる。
論文 参考訳(メタデータ) (2022-08-11T17:41:08Z) - textless-lib: a Library for Textless Spoken Language Processing [50.070693765984075]
我々はPyTorchベースのライブラリであるtextless-libを紹介した。
ライブラリが提供するビルディングブロックを説明し、そのユーザビリティを実証する。
論文 参考訳(メタデータ) (2022-02-15T12:39:42Z) - RNNs can generate bounded hierarchical languages with optimal memory [113.73133308478612]
RNNは、自然言語構文の足場を反映した境界階層言語を効率的に生成できることを示す。
Dyck-($k$,$m$)は、よくネストされた括弧($k$型)と$m$バウンドされたネスト深さの言語である。
明示的な構成により,$O(m log k)$ hidden units の RNN がメモリの指数的削減に十分であることを示す。
論文 参考訳(メタデータ) (2020-10-15T04:42:29Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。