FACTOID # 63: Brazil takes up 47.8% of South America.
 
 Home   Encyclopedia   Statistics   Countries A-Z   Flags   Maps   Education   Forum   FAQ   About 
 
WHAT'S NEW
RECENT ARTICLES
More Recent Articles »
 

FACTS & STATISTICS    Simple view

  1. Select countries to view: (hold down Control key and click to select several)

     

     

    Compare:

     

     

  1. Select fact or statistic: (* = graphable)

     

     

     

  2. (OPTIONAL) Compare to statistic: (both need to be graphable)

     

     

     

  3. View result as:

     

       
(OR) SEARCH ALL encyclopedia, stats & forums:   

Encyclopedia > 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 (Baeten 2004), as part of an effort to investigate the solutions of unguarded recursive equations. Moreso 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 (Luttik 2005), and in fact the term process algebra was coined during the research that led to ACP. Universal algebra is the field of mathematics that studies the ideas common to all algebraic structures. ... Concurrent systems are an area of study in computer science, where concurrency or parallelism is important. ... The process calculi (or process algebras) are a diverse family of related approaches to formally modelling concurrent systems. ... The Calculus of Communicating Systems (or CCS) (one of the first process calculi) was developed by Robin Milner. ... In computer science, Communicating Sequential Processes (CSP) is a language for describing patterns of interaction. ... Universal algebra is the field of mathematics that studies the ideas common to all algebraic structures. ...

Contents


Informal description

ACP is fundamentally an algebra, in the sense of universal algebra. This algebra provides a way to describe systems in terms of algebraic process expressions that define compositions of other processes, or of certain primitive elements. Universal algebra is the field of mathematics that studies the ideas common to all algebraic structures. ...


Primitives

ACP uses instantaneous, atomic actions (a,b,c,...) as its primitives. Some actions have special meaning, such as the action δ, which represents deadlock or stagnation, and the action τ, which represents a silent action (abstracted actions that have no specific identity). A deadlock is a situation wherein two or more competing actions are waiting for the other to finish, so neither ever does. ...


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 operator ( + ), which provides a choice between actions, and the sequencing operator (cdot), which specifies an ordering on actions. So, for example, the process
(a+b)cdot c
first chooses to perform either a or b, and then performs action c.
  • Concurrency — to allow the description of concurrency, ACP provides the merge and left-merge operators. The merge operator, vert vert, represents the parallel composition of two processes, the individual actions of which are interleaved. The left-merge operator, vertlfloor, 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
(a cdot b) vert vert (c cdot d)
may perform the actions a,b,c,d in any of the sequences abcd,acbd,acdb,cabd,cadb,cdab. On the other hand, the process
(a cdot b) vert lfloor (c cdot d)
may only perform the sequences abcd,acbd,acdb since the left-merge operators ensures that the action a occurs first.
  • Communication — interaction (or communication) between processes is represented using the binary communications operator, vert. For example, the actions r(d) and w(d) might be interpreted as the reading and writing of a data item d in D = {1,2,3,ldots}, respectively. Then the process
(sum_{d in D} r(d) cdot y) vert (w(1) cdot z)
will communicate the value 1 from the right component process to the left component process (i.e. the identifier d is bound to the value 1, and free instances of d in the process y take on that value), and then behave as the merge of y and z.
  • Abstraction — the abstraction operator, τI, provides 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 action τ. In some cases, these silent steps can also be removed from the process expression as part of the abstraction process. For example,
tau_{{c}}((a+b)cdot c) = (a + b) cdot tau
which, in this case, can be reduced to
a + b
since the event c 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 satisifies the axioms (Bergstra and Klop 1987)

begin{matrix} x + y &=& y + x (x+y)+z&=& x+(y+z) x+x&=&x (x+y)cdot z &=& (xcdot z) + (ycdot z) (x cdot y)cdot z &=& x cdot (y cdot z) end{matrix}

Deadlock

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

begin{matrix} delta + x &=& x delta cdot x &=& delta end{matrix}

Concurrency and interaction

The axioms associated with the merge, left-merge, and communication operators are (Bergstra and Klop 1987)

begin{matrix} x vertvert y &=& x vertlfloor y + y vertlfloor x + x vert y a cdot x vertlfloor y &=& acdot ( x vertvert y) a vertlfloor y &=& a cdot y  (x+y) vertlfloor z &=& (x vertlfloor z) + (y vertlfloor z) a cdot x vert b &=& (a vert b)cdot x a vert b cdot x &=& (a vert b)cdot x a cdot x vert b cdot y &=& (avert b)cdot (x vert vert y) (x + y)vert z &=& xvert z + yvert z x vert (y + z) &=& xvert y + xvert z end{matrix}

When the communications operator is applied to actions alone, rather than processes, it is interpreted as a binary function from actions to actions, vert : A times A rightarrow A. The definition of this function defines the possible interactions between processes — those pairs of actions that do not constitute interactions are mapped to the deadlock action, δ, while permitted interaction pairs are mapped to corresponding single actions representing the occurence of an interaction. For example, the communications function might specify that

a vert a rightarrow c

which indicates that a successful interaction a vert a will be reduced to the action c. ACP also includes an encapsulation operator, partial_H for some H subseteq A, which is used to convert unsuccessful communication attempts (i.e. elements of H that have not been reduced via the communication function) to the deadlock action. The axioms associated with the communications function and encapsulation operator are (Bergstra and Klop 1987)

begin{matrix} a vert b &=& b vert a (a vert b) vert c &=& a vert (b vert c) a vert delta &=& delta partial_H(a) &=& a mbox{ if } a notin H partial_H(a) &=& delta mbox{ if } a in H partial_H(x + y) &=& partial_H(x) + partial_H(y) partial_H(x cdot y) &=& partial_H(x) cdot partial_H(y) end{matrix}

Abstraction

The axioms associated with the abstraction operator are (Bergstra and Klop 1987)

begin{matrix} tau_I(tau) &=& tau tau_I(a) &=& a mbox{ if } a notin I tau_I(a) &=& tau mbox{ if } a in I tau_I(x + y) &=& tau_I(x) + tau_I(y) tau_I(x cdot y) &=& tau_I(x) cdot tau_I(y) partial_H(tau) &=& tau x cdot tau &=& x tau cdot x &=& tau cdot x + x acdot(taucdot x + y) &=& acdot(taucdot x + y) + acdot x  tau cdot x vertlfloor y &=& taucdot ( x vertvert y) tau vertlfloor x &=& tau cdot x  tau vert x &=& delta x vert tau &=& delta taucdot x vert y &=& x vert y x vert taucdot y &=& x vert y (x + y)vert z &=& xvert z + yvert z x vert (y + z) &=& xvert y + xvert z end{matrix}

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

  • -  P.J.L. Cuijpers and M.A. Reniers: Hybrid process algebra, Technical Report, Department of Mathematics and Computer Science, Technical University Eindhoven, 2003


 

COMMENTARY     


Share your thoughts, questions and commentary here
Your name
Your comments
Please enter the 5-letter protection code

Want to know more?
Search encyclopedia, statistics and forums:

 


Lesson Plans | Student Area | Student FAQ | Reviews | Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms.