in computer science, the process calculi (or process algebras) are a diverse family of related approaches for formally modelling concurrent systems. process calculi provide a tool for the high-level description of interactions, communications, and synchronizations between a collection of independent agents or processes. they also provide algebraic laws that allow process descriptions to be manipulated and analyzed, and permit formal reasoning about equivalences between processes (e.g., using bisimulation). leading examples of process calculi include csp, ccs, acp, and lotos. more recent additions to the family include the Ï-calculus, the ambient calculus, pepa, the fusion calculus and the join-calculus. == essential features == while the variety of existing process calculi is very large (including variants that incorporate stochastic behaviour, timing information, and specializations for studying molecular interactions), there are several features that all process calculi have in common: * representing interactions between independent processes as communication (message-passing), rather than as the modification of shared variables * describing processes and systems using a small collection of primitives, and operators for combining those primitives * defining algebraic laws for the process operators, which allow process expressions to be manipulated using equational reasoning == mathematics of processes == to define a process calculus, one starts with a set of names (or channels) whose purpose is to provide means of communication. in many implementations, channels have rich internal structure to improve efficiency, but this is abstracted away in most theoretic models. in addition to names, one needs a means to form new processes from old. the basic operators, always present in some form or other, allow:{{cite conference|last=baeten |first=j.c.m. |first2=m. | last2=bravetti |title=a generic process algebra | booktitle = algebraic process calculi: the first twenty five years and beyond (brics notes series ns-05-3) | publisher=brics, department of computer science, university of aarhus |date=august 2005 | location = bertinoro, forl`Ä±, italy | url=http://www.brics.dk/ns/
Process_calculi