Leveraging Rust types for modular specification and verification

V Astrauskas, P Müller, F Poli… - Proceedings of the ACM on …, 2019 - dl.acm.org
Rust's type system ensures memory safety: well-typed Rust programs are guaranteed to not
exhibit problems such as dangling pointers, data races, and unexpected side effects through …

Deny capabilities for safe, fast actors

S Clebsch, S Drossopoulou, S Blessing… - Proceedings of the 5th …, 2015 - dl.acm.org
Combining the actor-model with shared memory for performance is efficient but can
introduce data-races. Existing approaches to static data-race freedom are based on …

First-class state change in plaid

J Sunshine, K Naden, S Stork, J Aldrich… - ACM SIGPLAN …, 2011 - dl.acm.org
Objects model the world, and state is fundamental to a faithful modeling. Engineers use state
machines to understand and reason about state transitions, but programming languages …

Evidence-based programming language design: a philosophical and methodological exploration

AJ Kaijanaho - 2015 - jyx.jyu.fi
Background: Programming language design is not usually informed by empirical studies. In
other fields similar problems have inspired an evidence-based paradigm of practice. Such a …

Automatic parallelization: Executing sequential programs on a task-based parallel runtime

A Fonseca, B Cabral, J Rafael, I Correia - International Journal of Parallel …, 2016 - Springer
There are billions of lines of sequential code inside nowadays' software which do not benefit
from the parallelism available in modern multicore architectures. Automatically parallelizing …

Formally understanding Rust's ownership and borrowing system at the memory level

S Kan, Z Chen, D Sanán, Y Liu - Formal Methods in System Design, 2024 - Springer
Rust is an emergent systems programming language highlighting memory safety through its
Ownership and Borrowing System (OBS). Formalizing OBS in semantics is essential in …

Leveraging Uniqueness for Modular Verification of Heap-Manipulating Programs

V Astrauskas - 2024 - research-collection.ethz.ch
With software's ever-increasing role in human lives, ensuring its correctness is crucial.
Deductive software verification enables formally proving that a program is functionally …

The chemical approach to typestate-oriented programming

S Crafa, L Padovani - ACM Transactions on Programming Languages …, 2017 - dl.acm.org
We introduce a novel approach to typestate-oriented programming based on the chemical
metaphor: state and operations on objects are molecules of messages, and state …

[PDF][PDF] Concise read-only specifications for better synthesis of programs with pointers

A Costea, A Zhu, N Polikarpova… - European Symposium on …, 2020 - library.oapen.org
In program synthesis there is a well-known trade-off between concise and strong
specifications: if a specification is too verbose, it might be harder to write than the program; if …

A survey on the use of access permission-based specifications for program verification

A Sadiq, YF Li, S Ling - Journal of Systems and Software, 2020 - Elsevier
Verifying the correctness and reliability of imperative and object-oriented programs is one of
the grand challenges in computer science. In imperative programming models …