English
Related papers

Related papers: The Usability of Ownership

200 papers

Modern high-assurance software systems development favors memory safe languages such as SPARK (ADA) or Rust. However, developers often encounter non-memory safe code (e.g., C) in legacy systems and libraries which would be prohibitively…

Software Engineering · Computer Science 2026-05-14 Caleb Helbling , Graham Leach-Krouse , Michael Crystal

Rust is a memory-safe programming language that significantly improves software security. Existing codebases written in unsafe memory languages, such as C, must first be transpiled to Rust to take advantage of Rust's improved safety…

Software Engineering · Computer Science 2025-10-10 Yubo Bai , Tapti Palit

We present Mezzo, a typed programming language of ML lineage. Mezzo is equipped with a novel static discipline of duplicable and affine permissions, which controls aliasing and ownership. This rules out certain mistakes, including…

Programming Languages · Computer Science 2013-12-02 Jonathan Protzenko , François Pottier

Rust is one of the most promising systems programming languages to fundamentally solve the memory safety issues that have plagued low-level software for over forty years. However, to accommodate the scenarios where Rust's type rules might…

Cryptography and Security · Computer Science 2024-05-28 Jie Zhou , Mingshen Sun , John Criswell

We will discuss the RowHammer problem in DRAM, which is a prime (and likely the first) example of how a circuit-level failure mechanism in Dynamic Random Access Memory (DRAM) can cause a practical and widespread system security…

Cryptography and Security · Computer Science 2019-03-28 Onur Mutlu

Concurrent programs suffer from data races. To prevent data races, programmers use locks. However, programs can eliminate data races only when they acquire and release correct locks at correct timing. The lock API of C, in which people have…

Software Engineering · Computer Science 2023-01-30 Jaemin Hong , Sukyoung Ryu

Continuous testing during development is a well-established technique for software-quality assurance. Continuous model checking from revision to revision is not yet established as a standard practice, because the enormous resource…

Software Engineering · Computer Science 2013-05-30 Dirk Beyer , Stefan Löwe , Evgeny Novikov , Andreas Stahlbauer , Philipp Wendler

Requirements Engineering (RE) is the initial step towards building a software system. The success or failure of a software project is firmly tied to this phase, based on communication among stakeholders using natural language. The problem…

Software Engineering · Computer Science 2021-12-07 Mohammad Kasra Habib , Stefan Wagner , Daniel Graziotin

Local reasoning about programs that combine aliasing and mutable state is a longstanding challenge. Existing approaches -- ownership systems, linear and affine types, uniqueness types, and lexical effect tracking -- impose global…

Programming Languages · Computer Science 2025-09-01 Haotian Deng , Siyuan He , Songlin Jia , Yuyan Bao , Tiark Rompf

Lean processes focus on doing only necessery things in an efficient way. Artificial intelligence and Machine Learning offer new opportunities to optimizing processes. The presented approach demonstrates an improvement of the test process by…

Software Engineering · Computer Science 2019-06-10 Alexander Poth , Quirin Beck , Andreas Riel

Machine Learning as a Service (MLaaS) has emerged as a widely adopted paradigm for providing access to deep neural network (DNN) models, enabling users to conveniently leverage these models through standardized APIs. However, such services…

Machine Learning · Computer Science 2026-02-25 Bolin Shen , Zhan Cheng , Neil Zhenqiang Gong , Fan Yao , Yushun Dong

Property-based testing (PBT) is a popular technique for establishing confidence in software, where users write properties -- i.e., executable specifications -- that can be checked many times in a loop by a testing framework. In modern PBT…

Software Engineering · Computer Science 2026-02-24 Alperen Keles , Justine Frank , Ceren Mert , Harrison Goldstein , Leonidas Lampropoulos

In Rust, unsafe code is the sole source of potential undefined behaviors. To avoid misuse, Rust developers should clarify the safety properties for each unsafe API. However, the community currently lacks a key standard for safety…

Programming Languages · Computer Science 2026-04-28 Zihao Rao , Jiping Zhou , Hongliang Tian , Xin Wang , Hui Xu

Clone-and-own is a typical code reuse approach because of its simplicity and efficiency. Cloned software components are maintained independently by a new owner. These clone-and-own operations can be occurred sequentially, that is, cloned…

Software Engineering · Computer Science 2022-04-14 Hideaki Hata , Takashi Ishio

Over 70% of security vulnerabilities in critical software systems today result from memory safety violations. To address this challenge, fuzzing and static analysis are widely used automated methods to discover such vulnerabilities. Fuzzing…

Cryptography and Security · Computer Science 2026-03-31 Keno Hassler , Philipp Görz , Stephan Lipp

To remain useful for their users, software systems need to continuously enhance and extend their functionality. Nevertheless, in many object-oriented applications, features are not represented explicitly. The lack of modularization is known…

Software Engineering · Computer Science 2014-07-07 T. Pandiyavathi

Rust is a popular memory-safe systems programming language. In order to interact with hardware or call into non-Rust libraries, Rust provides \emph{unsafe} language features that shift responsibility for ensuring memory safety to the…

Cryptography and Security · Computer Science 2025-10-09 Merve Gülmez , Thomas Nyman , Christoph Baumann , Jan Tobias Mühlberg

Accountability is an often called for property of technical systems. It is a requirement for algorithmic decision systems, autonomous cyber-physical systems, and for software systems in general. As a concept, accountability goes back to the…

Software Engineering · Computer Science 2021-04-30 Severin Kacianka , Alexander Pretschner

A resource leak occurs when a program fails to release a finite resource like a socket, file descriptor or database connection. While sound static analysis tools can detect all leaks, automatically repairing them remains challenging. Prior…

Software Engineering · Computer Science 2025-10-07 Sanjay Malakar , Michael D. Ernst , Martin Kellogg , Manu Sridharan

Static analysis is one of the most widely adopted techniques to find software bugs before code is put in production. Designing and implementing effective and efficient static analyses is difficult and requires high expertise, which results…

Software Engineering · Computer Science 2019-06-04 Andrew Habib , Michael Pradel