A sound and complete reasoning system for asynchronous communication with shared futures

https://doi.org/10.1016/j.jlamp.2014.03.003Get rights and content
Under an Elsevier user license
open archive

Highlights

  • We present a reasoning system for asynchronous communication with shared futures.

  • We consider compositional reasoning of concurrent and object oriented systems.

  • We provide an operational and axiomatic semantics.

  • The reasoning system is proven sound and relatively complete.

  • The language considered and the formal treatment focus on the future concept.

Abstract

Distributed and concurrent object-oriented systems are difficult to analyze due to the complexity of their concurrency, communication, and synchronization mechanisms. We consider the setting of concurrent objects communicating by asynchronous method calls. The future mechanism extends the traditional method call communication model by facilitating sharing of references to futures. By assigning method call result values to futures, third party objects may pick up these values. This may reduce the time spent waiting for replies in a distributed environment. However, futures add a level of complexity to program analysis, as the program semantics becomes more involved.

This paper presents a Hoare style reasoning system for distributed objects based on a general concurrency and communication model focusing on asynchronous method calls and futures. The model facilitates invariant specifications over the locally visible communication history of each object. Compositional reasoning is supported, and each object may be specified and verified independently of its environment. The presented reasoning system is proven sound and (relatively) complete with respect to the given operational semantics.

Keywords

Distributed systems
Compositional reasoning
Hoare Logic
Concurrent objects
Operational semantics
Communication history

Cited by (0)

This work was done in the context of the EU project FP7-610582 Envisage: Engineering Virtualized Services (http://www.envisage-project.eu) and FP7-ICT-2013-X UpScale: From Inherent Concurrency to Massive Parallelism through Type-based Optimizations (http://www.upscale-project.eu).