A CSP Approach to Action Systems.
Oxford University, Computing Laboratory,
The communicating sequential processes (CSP) formalism, introduced by Hoare, is an event-based approach to distributed computing. The action-system formalism, introduced by Back & Kurki-Suonio, is a state-based approach to distributed computing. Using weakest-precondition formulae, Morgan has defined a correspondence between action systems and the failures-divergences model for CSP. Simulation is a proof technique for showing refinement of action systems. Using the correspondence of Morgan, Woodcock & Morgan have shown that simulation is sound and complete in the CSP failures-divergences model. In this thesis, Morgan's correspondence is extended to the CSP infinite- traces model in order to deal more properly with unbounded nondeterminism. It is shown that simulation is sound in the infinite-traces model, though completeness is lost in certain cases. The new correspondence is then extended to include a notion of internal action. This allows the definition of a hiding operator for action systems that is shown to correspond to the CSP hiding operator. Rules for simulation steps involving internal actions are developed. A parallel operator for action systems is defined, in which interaction is based on synchronisation over shared actions. This operator is shown to correspond to the CSP parallel operator. The correspondence between action systems and CSP is extended again so that actions may have input and output parameters. This allows parallel action- systems to pass values on synchronisation. The original motivation for the work described in this thesis was the use of the action system formalism in the development of telecommunications systems, where interaction is often based on synchronised value-passing. The techniques developed here are applied to a series of case studies involving telecommunications-type systems. The techniques are used to refine and decompose abstract specifications of these systems into parallel sub-systems that interact via synchronised value-passing.
Actions (login required)