RefinedC: automating the foundational verification of C code with refined ownership types

M Sammler, R Lepigre, R Krebbers… - Proceedings of the …, 2021 - dl.acm.org
Given the central role that C continues to play in systems software, and the difficulty of
writing safe and correct C code, it remains a grand challenge to develop effective formal …

Aeneas: Rust verification by functional translation

S Ho, J Protzenko - Proceedings of the ACM on Programming …, 2022 - dl.acm.org
We present Aeneas, a new verification toolchain for Rust programs based on a lightweight
functional translation. We leverage Rust's rich region-based type system to eliminate …

Oxide: The essence of rust

A Weiss, O Gierczak, D Patterson, A Ahmed - arXiv preprint arXiv …, 2019 - arxiv.org
Rust claims to advance industrial programming by bridging the gap between low-level
systems programming and high-level application programming. At the heart of the argument …

Oxidizing OCaml with modal memory management

A Lorenzen, L White, S Dolan, RA Eisenberg… - Proceedings of the …, 2024 - dl.acm.org
Programmers can often improve the performance of their programs by reducing heap
allocations: either by allocating on the stack or reusing existing memory in-place. However …

[PDF][PDF] Linearity and uniqueness: An entente cordiale

D Marshall, M Vollmer, D Orchard - European Symposium on …, 2022 - library.oapen.org
Substructural type systems are growing in popularity because they allow for a resourceful
interpretation of data which can be used to rule out various software bugs. Indeed …

Sound Borrow-Checking for Rust via Symbolic Semantics

S Ho, A Fromherz, J Protzenko - … of the ACM on Programming Languages, 2024 - dl.acm.org
The Rust programming language continues to rise in popularity, and as such, warrants the
close attention of the programming languages community. In this work, we present a new …

Reference capabilities for concurrency control

E Castegren, T Wrigstad - ECOOP 2016, July 17–22, Rome, Italy, 2016 - diva-portal.org
The proliferation of shared mutable state in object-oriented programming complicates
software development as two seemingly unrelated operations may interact via an alias and …

A relational model of types-and-effects in higher-order concurrent separation logic

M Krogh-Jespersen, K Svendsen… - Proceedings of the 44th …, 2017 - dl.acm.org
Recently we have seen a renewed interest in programming languages that tame the
complexity of state and concurrency through refined type systems with more fine-grained …

The meaning of memory safety

A Azevedo de Amorim, C Hriţcu, BC Pierce - … , POST 2018, Held as Part of …, 2018 - Springer
We give a rigorous characterization of what it means for a programming language to be
memory safe, capturing the intuition that memory safety supports local reasoning about …

LaCasa: lightweight affinity and object capabilities in Scala

P Haller, A Loiko - Proceedings of the 2016 ACM SIGPLAN International …, 2016 - dl.acm.org
Aliasing is a known source of challenges in the context of imperative object-oriented
languages, which have led to important advances in type systems for aliasing control …