This work relates different approaches for the modelling of parallel processes. On the one hand there are the so-called "process algebras" or "abstract programming languages" with Milner's Calculus of Communicating Systems (CCS) and the theoretical version of Hoare's Communicating Sequential Processes (CSP) as main representatives. On the other hand there are machine models, i. e. the classical finite state automata (transition systems), for which, however, more discriminating notions of equivalence than equality of languages are used; and secondly, there are differently powerful types of Petri nets, namely safe and general (place/transition) nets respectively, and predicate/transition nets. Within a uniform framework the syntax and the operational semantics of CCS and TCSP are explained. We consider both, Milner's well-known interleaving semantics, which is based on infinite transition systems, as well as the new distributed semantics introduced by Degano et al. , which is based on infinite safe nets. The main part of this work contains three syntax-driven constructions of transition systems, safe nets, and predicate/transition nets respectively.
Each of them is accompanied by a proof of consistency. Due to intrinsic limits, which are also investigated here, neither for transition systems and finite nets, nor for general nets does a finite consistent representation of all CCS and TCSP programs exist. However sublanguages which allow finite representations are discerned. On the other hand the construction of predicate/transition nets is possible for all CCS programs in which every choice and every recursive body starts sequentially.
Abstract programming languages.- Connections with language theory.- Representation by finite automata.- Representation by finite and safe Petri nets.- A remark on the representation by finite Petri nets.- Representation by finite and strict predicate/transition nets.