A Concurrent Functional Semantics for a Process Algebra Based on Action Systems

  • Authors:
  • Ugo Montanari;Gioia Ristori

  • Affiliations:
  • Dipartimento di Informatica, Univ. di Pisa, Corso Italia 40, 1-56100 Pisa. e-mail: ugo, gioia@di.unipi.it, fax: +39(+50)887226;Dipartimento di Informatica, Univ. di Pisa, Corso Italia 40, 1-56100 Pisa. e-mail: ugo, gioia@di.unipi.it, fax: +39(+50)887226

  • Venue:
  • Fundamenta Informaticae
  • Year:
  • 1997

Quantified Score

Hi-index 0.00

Visualization

Abstract

In [5, 8] a compositional, algebraic framework is provided in which shared memory systems can be specified and analyzed. The interferences in the use of the shared data are modelled, at the abstract level, by a conflict relation among the actions of the system. The semantic model of the process algebra language is defined in such a way that conflicting actions cannot be executed in parallel, whilst independent actions can. We show in the paper that conflict-based semantics do not allow for exploiting all the parallelism among the activities of a system. Actually, there are functionally equivalent programs (i.e. programs that compute the same final states of the activities and data) which perform conflicting actions in different order. In these situations, conflict-based semantics are not satisfactory, since they put useless sequential constraints on the executions. In this paper we define a concurrent semantics for the process algebra language in [5] which is in agreement with functional equivalence. We propose a model for the language which embeds both concurrent and functional aspects of programs, and takes into account two fundamental topics: the enhancement of the parallelism among the activities of the system, and the functional correctness of its computations. The formalism we use is that of Contextual Condition Event nets [12] (CC/E nets). By using CC/E nets we provide a faithful description of both the data and the activities of a shared memory system, in such a way that each process algebra term can be described by means of a set of net computations. The concurrent semantics of a term is then obtained by associating a structure called O-process [4] with each net computation. This semantics is in full agreement with functional equivalence, i.e. two process algebra terms compute the same final states of the activities and data if and only if they have the same concurrent semantics.