Matches in SemOpenAlex for { <https://semopenalex.org/work/W3109383821> ?p ?o ?g. }
Showing items 1 to 83 of
83
with 100 items per page.
- W3109383821 endingPage "27" @default.
- W3109383821 startingPage "1" @default.
- W3109383821 abstract "Rust’s ownership type system enforces a strict discipline on how memory locations are accessed and shared. This discipline allows the compiler to statically prevent memory errors, data races, inadvertent side effects through aliasing, and other errors that frequently occur in conventional imperative programs. However, the restrictions imposed by Rust’s type system make it difficult or impossible to implement certain designs, such as data structures that require aliasing (e.g. doubly-linked lists and shared caches). To work around this limitation, Rust allows code blocks to be declared as unsafe and thereby exempted from certain restrictions of the type system, for instance, to manipulate C-style raw pointers. Ensuring the safety of unsafe code is the responsibility of the programmer. However, an important assumption of the Rust language, which we dub the Rust hypothesis , is that programmers use Rust by following three main principles: use unsafe code sparingly, make it easy to review, and hide it behind a safe abstraction such that client code can be written in safe Rust. Understanding how Rust programmers use unsafe code and, in particular, whether the Rust hypothesis holds is essential for Rust developers and testers, language and library designers, as well as tool developers. This paper studies empirically how unsafe code is used in practice by analysing a large corpus of Rust projects to assess the validity of the Rust hypothesis and to classify the purpose of unsafe code. We identify queries that can be answered by automatically inspecting the program’s source code, its intermediate representation MIR, as well as type information provided by the Rust compiler; we complement the results by manual code inspection. Our study supports the Rust hypothesis partially: While most unsafe code is simple and well-encapsulated, unsafe features are used extensively, especially for interoperability with other languages." @default.
- W3109383821 created "2020-12-07" @default.
- W3109383821 creator A5024601245 @default.
- W3109383821 creator A5053113833 @default.
- W3109383821 creator A5073853337 @default.
- W3109383821 creator A5080556886 @default.
- W3109383821 creator A5089189715 @default.
- W3109383821 date "2020-11-13" @default.
- W3109383821 modified "2023-09-30" @default.
- W3109383821 title "How do programmers use unsafe rust?" @default.
- W3109383821 cites W2073407646 @default.
- W3109383821 cites W2122291521 @default.
- W3109383821 cites W2394743012 @default.
- W3109383821 cites W2753084336 @default.
- W3109383821 cites W2756350061 @default.
- W3109383821 cites W2779850521 @default.
- W3109383821 cites W2808181181 @default.
- W3109383821 cites W2913530642 @default.
- W3109383821 cites W3034030180 @default.
- W3109383821 cites W4236681616 @default.
- W3109383821 doi "https://doi.org/10.1145/3428204" @default.
- W3109383821 hasPublicationYear "2020" @default.
- W3109383821 type Work @default.
- W3109383821 sameAs 3109383821 @default.
- W3109383821 citedByCount "17" @default.
- W3109383821 countsByYear W31093838212020 @default.
- W3109383821 countsByYear W31093838212021 @default.
- W3109383821 countsByYear W31093838212022 @default.
- W3109383821 countsByYear W31093838212023 @default.
- W3109383821 crossrefType "journal-article" @default.
- W3109383821 hasAuthorship W3109383821A5024601245 @default.
- W3109383821 hasAuthorship W3109383821A5053113833 @default.
- W3109383821 hasAuthorship W3109383821A5073853337 @default.
- W3109383821 hasAuthorship W3109383821A5080556886 @default.
- W3109383821 hasAuthorship W3109383821A5089189715 @default.
- W3109383821 hasBestOaLocation W31093838211 @default.
- W3109383821 hasConcept C111472728 @default.
- W3109383821 hasConcept C124304363 @default.
- W3109383821 hasConcept C138885662 @default.
- W3109383821 hasConcept C169590947 @default.
- W3109383821 hasConcept C177264268 @default.
- W3109383821 hasConcept C197781089 @default.
- W3109383821 hasConcept C199360897 @default.
- W3109383821 hasConcept C2776760102 @default.
- W3109383821 hasConcept C2778514511 @default.
- W3109383821 hasConcept C28180684 @default.
- W3109383821 hasConcept C41008148 @default.
- W3109383821 hasConcept C43126263 @default.
- W3109383821 hasConceptScore W3109383821C111472728 @default.
- W3109383821 hasConceptScore W3109383821C124304363 @default.
- W3109383821 hasConceptScore W3109383821C138885662 @default.
- W3109383821 hasConceptScore W3109383821C169590947 @default.
- W3109383821 hasConceptScore W3109383821C177264268 @default.
- W3109383821 hasConceptScore W3109383821C197781089 @default.
- W3109383821 hasConceptScore W3109383821C199360897 @default.
- W3109383821 hasConceptScore W3109383821C2776760102 @default.
- W3109383821 hasConceptScore W3109383821C2778514511 @default.
- W3109383821 hasConceptScore W3109383821C28180684 @default.
- W3109383821 hasConceptScore W3109383821C41008148 @default.
- W3109383821 hasConceptScore W3109383821C43126263 @default.
- W3109383821 hasFunder F4320320924 @default.
- W3109383821 hasIssue "OOPSLA" @default.
- W3109383821 hasLocation W31093838211 @default.
- W3109383821 hasLocation W31093838212 @default.
- W3109383821 hasOpenAccess W3109383821 @default.
- W3109383821 hasPrimaryLocation W31093838211 @default.
- W3109383821 hasRelatedWork W1497385637 @default.
- W3109383821 hasRelatedWork W1992155208 @default.
- W3109383821 hasRelatedWork W2128012221 @default.
- W3109383821 hasRelatedWork W2192862863 @default.
- W3109383821 hasRelatedWork W2369288331 @default.
- W3109383821 hasRelatedWork W2802264252 @default.
- W3109383821 hasRelatedWork W3006608075 @default.
- W3109383821 hasRelatedWork W3160136729 @default.
- W3109383821 hasRelatedWork W3175324715 @default.
- W3109383821 hasRelatedWork W1482645738 @default.
- W3109383821 hasVolume "4" @default.
- W3109383821 isParatext "false" @default.
- W3109383821 isRetracted "false" @default.
- W3109383821 magId "3109383821" @default.
- W3109383821 workType "article" @default.