English
Related papers

Related papers: Place Capability Graphs: A General-Purpose Model o…

200 papers

Fuzzing is a popular bug detection technique achieved by testing software executables with random inputs. This technique can also be extended to libraries by constructing executables that call library APIs, known as fuzz drivers. Automated…

Software Engineering · Computer Science 2023-12-20 Yehong Zhang , Jun Wu , Hui Xu

Robustness is a key concern for Rust library development because Rust promises no risks of undefined behaviors if developers use safe APIs only. Fuzzing is a practical approach for examining the robustness of programs. However, existing…

Software Engineering · Computer Science 2021-10-25 Jianfeng Jiang , Hui Xu , Yangfan Zhou

Decompiling Rust binaries is challenging due to the language's rich type system, aggressive compiler optimizations, and widespread use of high-level abstractions. In this work, we conduct a benchmark-driven evaluation of decompilation…

Programming Languages · Computer Science 2025-07-28 Zixu Zhou

Rust is a programming language that uses a concept of ownership to guarantee memory safety without the use of a garbage collector. However, some error messages related to ownership can be difficult to understand and fix, particularly those…

Software Engineering · Computer Science 2023-09-14 Ruochen Wang , Molly Maclaren , Michael Coblenz

The Rust programming language is becoming increasingly popular among systems programmers due to its efficient performance and robust memory safety guarantees. Rust employs an ownership model to ensure this guarantee by allowing each value…

Software Engineering · Computer Science 2025-01-27 Vikram Nitin , Anne Mulhern , Sanjay Arora , Baishakhi Ray

Rust is a modern programming language that guarantees memory safety and the absence of data races with a strong type system. We present RustyDL, a program logic for Rust, as a foundation for an auto-interactive, deductive verification tool…

Programming Languages · Computer Science 2026-02-26 Daniel Drodt , Reiner Hähnle

C-rusted is an innovative technology whereby C programs can be (partly) annotated so as to express: ownership, exclusivity and shareability of language, system and user-defined resources; dynamic properties of objects and the way they…

Programming Languages · Computer Science 2023-08-29 Roberto Bagnara , Abramo Bagnara , Federico Serafini

We present ConSORT, a type system for safety verification in the presence of mutability and aliasing. Mutability requires strong updates to model changing invariants during program execution, but aliasing between pointers makes it difficult…

Programming Languages · Computer Science 2020-02-19 John Toman , Ren Siqi , Kohei Suenaga , Atsushi Igarashi , Naoki Kobayashi

Rust is a modern systems programming language whose type system guarantees memory safety. For the sake of expressivity and performance it allows programmers to relax typing rules temporarily, using unsafe code blocks. However, in unsafe…

Logic in Computer Science · Computer Science 2022-12-27 Nima Rahimi Foroushaani , Bart Jacobs

State-of-the-art Boolean satisfiability (SAT) solvers constitute a practical and competitive approach for solving various real-world problems. To encourage their widespread adoption, the relatively high barrier of entry following from the…

Logic in Computer Science · Computer Science 2025-05-22 Christoph Jabs

Compiler diagnostics for type inference failures are notoriously bad, and type classes only make the problem worse. By introducing a complex search process during inference, type classes can lead to wholly inscrutable or useless errors. We…

Programming Languages · Computer Science 2025-04-29 Gavin Gray , Will Crichton , Shriram Krishnamurthi

Rust successfully applies ownership types to control memory allocation. This restricts the programs' topologies to the point where doubly-linked lists cannot be programmed in Safe Rust. We sketch how more flexible "local" ownership could be…

Programming Languages · Computer Science 2022-05-03 James Noble , Julian Mackay , Tobias Wrigstad

With the explosion in popularity of the Rust programming language, a wealth of tools have recently been developed to analyze, verify, and test Rust programs. Alas, the Rust ecosystem remains relatively young, meaning that every one of these…

Programming Languages · Computer Science 2025-06-03 Son Ho , Guillaume Boisseau , Lucas Franceschino , Yoann Prak , Aymeric Fromherz , Jonathan Protzenko

Testing is an essential tool to assure software, especially so in safety-critical applications. To quantify how thoroughly a software item has been tested, a test coverage metric is required. Maybe the strictest such metric known in the…

Software Engineering · Computer Science 2025-11-25 Wanja Zaeske , Pietro Albini , Florian Gilcher , Umut Durak

Despite the exploding interest in graph neural networks there has been little effort to verify and improve their robustness. This is even more alarming given recent findings showing that they are extremely vulnerable to adversarial attacks…

Machine Learning · Computer Science 2019-12-20 Aleksandar Bojchevski , Stephan Günnemann

Rust is a general-purpose programming language that is both type- and memory-safe. Rust does not use a garbage collector, but rather achieves these properties through a sophisticated, but complex, type system. Doing so makes Rust very…

Software Engineering · Computer Science 2022-02-16 Michael Coblenz , Michelle Mazurek , Michael Hicks

Refactoring tools are central to modern development, with extract-function refactorings used heavily in day-to-day work. For Rust, however, ownership, borrowing, and advanced type features make automated extract-function refactoring…

Programming Languages · Computer Science 2026-01-28 Matthew Britton , Sasha Pak , Alex Potanin

Memory-safety bugs introduce critical software-security issues. Rust provides memory-safe mechanisms to avoid memory-safety bugs in programming, while still allowing unsafe escape hatches via unsafe code. However, the unsafe code that…

Cryptography and Security · Computer Science 2022-12-07 Sangdon Park , Xiang Cheng , Taesoo Kim

Correct concurrent programs are difficult to write; when multiple threads mutate shared data, they may lose writes, corrupt data, or produce erratic program behavior. While many of the data-race issues with concurrency can be avoided by the…

Distributed, Parallel, and Cluster Computing · Computer Science 2019-04-30 Aditya Saligrama , Andrew Shen , Jon Gjengset

We introduce Cargo Scan, the first interactive program analysis tool designed to help developers audit third-party Rust code. Real systems written in Rust rely on thousands of transitive dependencies. These dependencies are as dangerous in…

Programming Languages · Computer Science 2026-02-09 Lydia Zoghbi , David Thien , Ranjit Jhala , Deian Stefan , Caleb Stanford