Object connectivity and full abstraction for a concurrent calculus of classes

  • Authors:
  • Erika Ábrahám;Marcello M. Bonsangue;Frank S. de Boer;Martin Steffen

  • Affiliations:
  • University Freiburg, Germany;University Leiden, The Netherlands;CWI, Amsterdam, The Netherlands;Christian-Albrechts-University, Kiel, Germany

  • Venue:
  • ICTAC'04 Proceedings of the First international conference on Theoretical Aspects of Computing
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

Abstract

The concurrent object calculus has been investigated as a core calculus for imperative, object-oriented languages with multithreading and heap-allocated objects. The combination of this form of concurrency with objects corresponds to features known from the popular language Java. One distinctive feature, however, of the concurrent object calculus is that it is object-based, whereas the mainstream of object-oriented languages is class-based. This work explores the semantical consequences of introducing classes to the calculus. Considering classes as part of a component makes instantiation a possible interaction between component and environment. A striking consequence is that to characterize the observable behavior we must take connectivity information into account, i.e., the way objects may have knowledge of each other. In particular, unconnected environment objects can neither determine the absolute order of interaction and furthermore cannot exchange information to compare object identities. We formulate an operational semantics that incorporates the connectivity information into the scoping mechanism of the calculus. As instantiation itself is unobservable, objects are instantiated only when accessed for the first time (“lazy instantiation”). Furthermore we use a corresponding trace semantics for full abstraction wrt. a may-testing based notion of observability.