Variables as Resource for Shared-Memory Programs: Semantics and Soundness

https://doi.org/10.1016/j.entcs.2006.04.008Get rights and content
Under a Creative Commons license
open access

Abstract

Parkinson, Bornat, and Calcagno recently introduced a logic for partial correctness in which program variables are treated as resource, generalizing earlier work based on separation logic and permissions. An advantage of their approach is that it yields a logic devoid of complex side conditions: there is no need to pepper the inference rules with “modifies” clauses. They used a simple operational semantics to prove soundness of the sequential fragment of their logic, and they showed that the inference rules of concurrent separation logic can be translated directly into their framework. Their concurrency rules are strictly more powerful than those of concurrent separation logic, since the new logic allows proofs of programs that perform concurrent reads. We provide a denotational semantics and a soundness proof for the concurrent fragment of their logic, extending our earlier work on concurrent separation logic to incorporate permissions in a natural manner.

Keywords

shared memory
concurrency
partial correctness
race condition
permission
separation logic

Cited by (0)

1

This research was sponsored by the National Science Foundation (NSF) under grant no. CCF-0429505. The views and conclusions contained in this document are those of the author and should not be interpreted as representing the official policies, either expressed or implied, of any sponsoring institution, the U.S. government or any other entity.