A formal language used to specify the actions of processes and their sequential and concurrent composition. A process calculus has a formal semantics which is useful in attempts to prove certain properties about a software design, such as freedom from DeadLock or LiveLock, or that resources are fairly shared between concurrent processes. See ProofOfCorrectness.
Examples include:
- CSP, CommunicatingSequentialProcesses (http://archive.comlab.ox.ac.uk/csp.html). Also see FiniteStateProcesses.
- CCS (CalculusOfCommunicatingSystems, RobinMilner, TuringAward 1991)
- the PiCalculus (http://www.cs.auc.dk/mobility/)
- the JoinCalculus
What is the relation between this and the ActionCalculi?
See http://www.cl.cam.ac.uk/users/rm135/ac9.ps . Essentially, ActionCalculi are descriptions of process calculi (and various other foundational models) using a common mathematical framework.
Any reason ActorsModel isn't listed here? It seems to be sufficiently formal to merit the label "calculus".
ActorsModel technically isn't a calculus because it (intentionally) is not specified as a notation or language, but rather as a collection of laws that may apply to a given language. So a ProcessCalculus can be an instantiation of the ActorsModel (such as the JoinCalculus, for example).