Separation Logic Semantics for Communicating Processes
Tony Hoare,Peter W. O'Hearn +1 more
TL;DR: This paper explores a unification of the ideas of Concurrent Separation Logic with those of Communicating Sequential Processes by an operator for separation in time as well as separation in space.
read more
About: This article is published in Electronic Notes in Theoretical Computer Science. The article was published on 01 Apr 2008. and is currently open access. The article focuses on the topics: Separation logic & Communicating sequential processes.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
Mechanized Semantics for the Clight Subset of the C Language
Sandrine Blazy,Xavier Leroy +1 more
TL;DR: The formal semantics of a large subset of the C language called Clight is presented, which includes pointer arithmetic, struct and union types, C loops and structured switch statements, and is mechanized using the Coq proof assistant.
Mechanized semantics for the Clight subset of the C language
Sandrine Blazy,Xavier Leroy +1 more
TL;DR: In this article, the formal semantics of a large subset of the C language called Clight are presented, which includes pointer arithmetic, "struct" and "union" types, C loops and structured "switch" statements.
147
Alting barriers: synchronisation with choice in Java using JCSP
Peter H. Welch,Neil C. C. Brown,James Moores,Kevin Chalmers,Bernhard H. C. Sputh +4 more
- 01 Jun 2010
TL;DR: A significant extension to the barrier mechanism is presented: the fast resolution of choice between any number of barrier events, channel communications (in either direction) and timeouts.
52
Automatic Parallelization with Separation Logic
Mohammad Shahid Raza,Cristiano Calcagno,Philippa Gardner +2 more
- 28 Mar 2009
TL;DR: This work extends the approach to express properties of memory separation between different points in the program, and presents an algorithm for determining independences between program statements which can be used for parallelization.
Modular reasoning for deterministic parallelism
Mike Dodds,Suresh Jagannathan,Matthew Parkinson +2 more
- 26 Jan 2011
TL;DR: This paper examines the formal specification and verification of concurrent abstract predicates used to encapsulate racy behaviour in the library's implementation, and shows that the high-level specification abstracts the details of deterministic parallelism by verifying two different low-level implementations of the library.
References
Communicating sequential processes
TL;DR: It is suggested that input and output are basic primitives of programming and that parallel composition of communicating sequential processes is a fundamental program structuring method.
Language Primitives and Type Discipline for Structured Communication-Based Programming
Kohei Honda,Vasco T. Vasconcelos,Makoto Kubo +2 more
- 28 Mar 1998
TL;DR: Basic language constructs and a type discipline are introduced as a foundation of structured communication-based concurrent programming, which offers a high-level type abstraction of interactive behaviours of programs as well as guaranteeing the compatibility of interaction patterns between processes in a well-typed program.
Local Reasoning about Programs that Alter Data Structures
Peter W. O'Hearn,John C. Reynolds,Hongseok Yang +2 more
- 10 Sep 2001
TL;DR: An extension of Hoare's logic for reasoning about programs that alter data structures is described, based on a possible worlds model of the logic of bunched implications, and includes spatial conjunction and implication connectives alongside those of classical logic.
825
Language Primitives and Type Discipline for Structured Communication-Based Programming, Subject Reduction and Type Safety Theorems
Vasco T. Vasconcelos,Nobuko Yoshida +1 more
- 01 Jun 2006
TL;DR: In this article, the authors introduce basic language constructs and a type discipline as a foundation of structured communication-based concurrent programming, which allow programmers to organize programs as a combination of multiple flows of (possibly unbounded) reciprocal interactions in a simple and elegant way, subsuming the preceding communication primitives such as method invocation and rendez-vous.
Resources, concurrency, and local reasoning
TL;DR: This paper shows how a resource-oriented logic, separation logic, can be used to reason about the usage of resources in concurrent programs.
626