Repeatedly receives a character from the process named west and sends that character to process named east. In contrast to later versions of CSP, each process was assigned an explicit name, and the source or destination of a message was defined by specifying the name of the intended sending or receiving process. Programs in the original CSP were written as a parallel composition of a fixed number of sequential processes communicating with each other strictly through synchronous message-passing. It had a substantially different syntax than later versions of CSP, did not possess mathematically defined semantics, and was unable to represent unbounded nondeterminism. The version of CSP presented in Hoare's original 1978 article was essentially a concurrent programming language rather than a process calculus. The theory of CSP itself is also still the subject of active research, including work to increase its range of practical applicability (e.g., increasing the scale of the systems that can be tractably analyzed). CSP has been practically applied in industry as a tool for specifying and verifying the concurrent aspects of a variety of different systems, such as the T9000 Transputer, as well as a secure ecommerce system. ĬSP was first described in a 1978 article by Tony Hoare, but has since evolved substantially. CSP was highly influential in the design of the occam programming language and also influenced the design of programming languages such as Limbo, RaftLib, Erlang, Go, Crystal, and Clojure's core.async. It is a member of the family of mathematical theories of concurrency known as process algebras, or process calculi, based on message passing via channels. In computer science, communicating sequential processes ( CSP) is a formal language for describing patterns of interaction in concurrent systems. Not to be confused with Constraint satisfaction problem.
0 Comments
Leave a Reply. |