論文の概要: "Against the Void": An Interview and Survey Study on How Rust Developers Use Unsafe Code
- arxiv url: http://arxiv.org/abs/2404.02230v2
- Date: Wed, 17 Apr 2024 18:15:58 GMT
- ステータス: 処理完了
- システム内更新日: 2024-04-19 20:20:09.182502
- Title: "Against the Void": An Interview and Survey Study on How Rust Developers Use Unsafe Code
- Title(参考訳): Against the Void": Rust開発者が安全でないコードを使う方法に関するインタビューと調査
- Authors: Ian McCormack, Tomas Dougan, Sam Estep, Hanan Hibshi, Jonathan Aldrich, Joshua Sunshine,
- Abstract要約: Rustは、エイリアスと変更性を制限することで安全性を保証する。
サイクリックエイリアスやマルチオペレーティングといった重要なデザインパターンは、これらの制限を回避しなければならない。
- 参考スコア(独自算出の注目度): 2.2463451968497425
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: The Rust programming language is an increasingly popular choice for systems programming, since it can statically guarantee memory safety without automatic garbage collection. Rust provides its safety guarantees by restricting aliasing and mutability, but many key design patterns, such as cyclic aliasing and multi-language interoperation, must bypass these restrictions. Rust's $\texttt{unsafe}$ keyword enables features that developers can use to implement these patterns, and the Rust ecosystem includes useful tools for validating whether $\texttt{unsafe}$ code is used correctly. However, it is unclear if these tools are adequate for all use cases. To understand developers' needs, we conducted a mixed-methods study consisting of semi-structured interviews followed by a survey. We interviewed 19 Rust developers and surveyed 160 developers$\unicode{x2013}$all of whom engaged with $\texttt{unsafe}$ code. We found that 77% of survey respondents and a majority of interview participants were motivated to use $\texttt{unsafe}$ code because they were unaware of a safe alternative. Developers typically followed best-practices such as minimizing and localizing their use of $\texttt{unsafe}$ code, but only 23% were always certain that their encapsulations were sound. Limited tooling support for inline assembly and foreign function calls prevented developers from validating $\texttt{unsafe}$ code, and differences between Rust and other languages made foreign functions difficult to encapsulate. Verification tools were underused, and developers rarely audited their dependencies. Our results indicate a pressing need for production-ready tools that can validate the most frequently used $\texttt{unsafe}$ features.
- Abstract(参考訳): Rustプログラミング言語は、自動ガベージコレクションなしで静的にメモリ安全性を保証できるため、システムプログラミングにおいて人気が高まっている。
Rustはエイリアスと変更性を制限することで安全性を保証するが、サイクリックエイリアスや多言語相互運用といった多くの重要なデザインパターンは、これらの制限を回避しなければならない。
Rustの$\texttt{unsafe}$キーワードは、開発者がこれらのパターンを実装するために使用できる機能を可能にし、Rustエコシステムには、$\texttt{unsafe}$コードが正しく使用されるかどうかを検証する便利なツールが含まれている。
しかし、これらのツールがすべてのユースケースに適切かどうかは不明である。
開発者のニーズを理解するため,半構造化インタビューと調査を行った。
我々は19人のRust開発者に対してインタビューを行い、160人の開発者を調査した。
調査回答者の77%とインタビュー参加者の大多数が、安全な代替案を知らなかったために、$\texttt{unsafe}$コードを使うことを動機付けていることがわかった。
開発者は通常、$\texttt{unsafe}$コードの使用を最小化し、ローカライズするといったベストプラクティスに従うが、カプセル化が健全であることを常に確信しているのはわずか23%だった。
インラインアセンブリと外部関数呼び出しの限定的なツーリングサポートにより、開発者は$\texttt{unsafe}$コードを検証することができなくなり、Rustと他の言語の違いにより、外部関数のカプセル化が困難になった。
検証ツールが不足していたため、開発者は依存関係を監査することはめったになかった。
我々の結果は、最も頻繁に使用される$\texttt{unsafe}$機能を検証することができる実運用対応ツールの必要性が迫っていることを示している。
関連論文リスト
- VERT: Verified Equivalent Rust Transpilation with Few-Shot Learning [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 [101.31394141244294]
我々は、大規模言語モデル(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) - Unsafe's Betrayal: Abusing Unsafe Rust in Binary Reverse Engineering
toward Finding Memory-safety Bugs via Machine Learning [20.68333298047064]
Rustは、プログラミングにおけるメモリセーフなバグを避けるために、メモリセーフなメカニズムを提供する。
Rustのユーザビリティを高めるアンセーフコードは、メモリセーフなバグを見つけるための明確な場所を提供する。
これらの安全でないスポットは、マシンラーニングを介してRustバイナリコードで識別可能である、と私たちは主張しています。
論文 参考訳(メタデータ) (2022-10-31T19:32:18Z) - 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)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。