Process, Systems and Tests: Three Layers in Concurrent Computation
In this position paper, we would like to offer a new template to study process algebras for concurrent computation. We believe our template will clarify the distinction that is too often left implicit between user and programmer, and that it enlightens pre-existing issues that have been running across process algebras as diverse as the calculus of communicating systems (CCS), the π-calculus-also in its distributed version-or mobile ambients. Our distinction starts by subdividing the notion of process itself in three conceptually separated entities, and shapes future improvements-both technically and organizationally-as well as it captures recent and diverse progresses in process algebras. While the role of what can be observed and the subtleties in the definitions of congruences have been intensively studied, the fact that not all the comparisons serve the same purpose and should not be made in the same context is curiously left over, or at least not formally discussed. We argue that this blind spot comes from the under-specification of contexts-environments in which the comparison takes place-that supposedly 'stay the same' no matter the nature of the process, who is testing it, or for what. We illustrate our statement with the 'usual' concurrent languages, but also back it up with λ-calculus and existing implementations of concurrent languages as well.
READ FULL TEXT