↑ arvau

Wikipedia / Algebra of communicating processes

The algebra of communicating processes (ACP) is an algebraic approach to reasoning about concurrent systems. It is a member of the family of mathematical theories of concurrency known as process algebras or process calculi. ACP was initially developed by Jan Bergstra and Jan Willem Klop in 1982, as part of an effort to investigate the solutions of unguarded recursive equations. More so than the other seminal process calculi (CCS and CSP), the development of ACP focused on the algebra of processes, and sought to create an abstract, generalized axiomatic system for processes, and in fact the term process algebra was coined during the research that led to ACP.

Informal description

ACP is fundamentally an algebra, in the sense of universal algebra. This algebra is a way to describe systems in terms of algebraic process expressions that define compositions of other processes, or of certain primitive elements.

Primitives

ACP uses instantaneous, atomic actions, which represents deadlock, which represents a silent action (abstracted actions that have no specific identity).

Algebraic operators

Actions can be combined to form processes using a variety of operators. These operators can be roughly categorized as providing a basic process algebra, concurrency, and communication.

  • Choice and sequencing – the most fundamental of algebraic operators are the alternative), which provides a choice between actions, and the sequencing operator), which specifies an ordering on actions. So, for example, the process

  • is made does not matter and is left unspecified. Note that alternative composition is commutative but sequential composition is not (because time flows forward).

  • Concurrency – to allow the description of concurrency, ACP provides the merge and left-merge, is an auxiliary operator with similar semantics to the merge, but a commitment to always choose its initial step from the left-hand process. As an example, the process

  • . On the other hand, the process

    occurs first.

  • Communication , respectively. Then the process

  • from the right component process to the left component process (i.e..

  • Abstraction , is a way to "hide" certain actions, and treat them as events that are internal to the systems being modelled. Abstracted actions are converted to the silent step. In some cases, these silent steps can also be removed from the process expression as part of the abstraction process. For example,

  • which, in this case, can be reduced to

    is no longer observable and has no observable effects.

Formal definition

ACP fundamentally adopts an axiomatic, algebraic approach to the formal definition of its various operators. The axioms presented below comprise the full axiomatic system for ACP (ACP with abstraction).

Basic process algebra

Using the alternative and sequential composition operators, ACP defines a basic process algebra which satisfies the axioms

Deadlock

Beyond the basic algebra, two additional axioms define the relationships between the alternative and sequencing operators, and the deadlock

Concurrency and interaction

The axioms associated with the merge, left-merge, and communication operators are

When the communications operator is applied to actions alone, rather than processes, it is interpreted as a binary function. The definition of this function defines the possible interactions between processes , while permitted interaction pairs are mapped to corresponding single actions representing the occurrence of an interaction. For example, the communications function might specify that

that have not been reduced via the communication function) to the deadlock action. The axioms associated with the communications function and encapsulation operator are

Abstraction

The axioms associated with the abstraction operator are

Note that the action a in the above list may take the value δ (but of course, δ cannot belong to the abstraction set I).

Related formalisms

ACP has served as the basis or inspiration for several other formalisms that can be used to describe and analyze concurrent systems, including:

References