July 1984 | S. D. BROOKES, C. A. R. HOARE AND A. W. ROSCOE
A Theory of Communicating Sequential Processes by S. D. Brookes, C. A. R. Hoare, and A. W. Roscoe presents a mathematical model for communicating sequential processes, emphasizing the treatment of nondeterminism, parallelism, and the properties of processes. The paper defines a mathematical domain for processes that mirrors the domain of partial functions used in sequential programming. It introduces the concept of transitions, which model the behavior of processes and their interactions with environments. The paper defines operators such as sequential composition, conditional composition, parallel composition, and concealment, which allow for the construction of complex processes. These operators are shown to have algebraic properties that make them useful for defining the semantics of parallel programming languages. The paper also discusses the concept of failures, which represent the externally observable aspects of a process's behavior. It proves that every set of recursive equations in process-valued variables has a least solution, enabling the use of recursion in both programming languages and their formal definitions. The paper further explores the properties of nondeterminism, including distributivity, continuity, and limits, and discusses the role of recursion in defining processes. The paper concludes with a discussion of related work and future research directions, as well as an appendix containing proofs of some of the more interesting results. The paper provides a comprehensive framework for modeling and analyzing communicating sequential processes, with a focus on the mathematical properties and behaviors of processes in parallel and concurrent systems.A Theory of Communicating Sequential Processes by S. D. Brookes, C. A. R. Hoare, and A. W. Roscoe presents a mathematical model for communicating sequential processes, emphasizing the treatment of nondeterminism, parallelism, and the properties of processes. The paper defines a mathematical domain for processes that mirrors the domain of partial functions used in sequential programming. It introduces the concept of transitions, which model the behavior of processes and their interactions with environments. The paper defines operators such as sequential composition, conditional composition, parallel composition, and concealment, which allow for the construction of complex processes. These operators are shown to have algebraic properties that make them useful for defining the semantics of parallel programming languages. The paper also discusses the concept of failures, which represent the externally observable aspects of a process's behavior. It proves that every set of recursive equations in process-valued variables has a least solution, enabling the use of recursion in both programming languages and their formal definitions. The paper further explores the properties of nondeterminism, including distributivity, continuity, and limits, and discusses the role of recursion in defining processes. The paper concludes with a discussion of related work and future research directions, as well as an appendix containing proofs of some of the more interesting results. The paper provides a comprehensive framework for modeling and analyzing communicating sequential processes, with a focus on the mathematical properties and behaviors of processes in parallel and concurrent systems.