In the literature, the terms of process calculus and process algebra are often interchangeable. Meanwhile, it confused me. My questions are:Are there formal, standard, and widely-accepted definitions of calculus and algebra?What are the significant distinctions (maybe informally) between calculus and algebra?What are the features that make a theory kind of calculus or algebra?
Terminologies of Process calculus and Process algebra
terminology;process algebras;mathematical foundations
To my knowledge the two terms do not have a formal established definition and are often used interchangeably.There are different characteristics associated to each however, as @Dave already pointed out. I'll try to elaborate a bit further.In both cases you start by introducing the syntax of a language for expressing (concurrent) systems. This introduces what the basic combinators (constructs) for assembling systems together are.The real distinction comes when you start to specify their semantics.The process calculi approach is calculational in the sense that you focus on the reduction semantics, i.e. what are the steps a system can perform when executing it. This operational view helps a lot when using these languages for simulation for example. The chief notion in this case is the concept of observation: what can you observe about the evolution of a system? Using this idea one can determine when two systems are equivalent. The technical word for this concept is bisimilarity. Then, in some situations, you find that processes which are bisimilar can be interchanged in any context without altering the behaviour of the system overall. This is the approach Milner and his collaborators took in defining many calculi such as CCS and -calculus.The algebraic view instead avoids specifying a model for the semantics directly and opts for a more axiomatic view: a series of laws (equations between expressions of the language) establish which processes have the same behaviours. The focus is in proving equivalences and enriching the calculus with different combinators. Even the execution of a system is expressed as an equivalence between a system and a (simpler expression used as a) specification (see the step laws for CSP for instance).The equivalence between two systems is established by using the laws instead of referring to a particular model for their behaviour. The chief concept in this context is the one of refinement. This approach is the basis of the work of Hoare and his collaborators in defining CSP and its variants.That said, most of the languages mentioned have being studied with a mixture of these approaches so the distinction is more about the specific method used in a specific construction rather than about a language as a whole.