dcsimg
Main » TERM » C »

Communicating Sequential Processes (CSP) Definition & Meaning

Communicating sequential processes (CSP) is a language that uses math and logic to analyze communication between systems. CSP describes concurrent processes, which operate simultaneously in a system but are not parallel. Concurrency allows normal computer programs to run properly by executing different tasks during the same period of time, but these tasks are not dependent on (or parallel to) each other. In CSP, concurrent systems communicate through passing messages: sequential processes are communicating between each other. This communication is algebraic and logical.

CSP was initially developed by Tony Hoare in 1978. He refined his theory in the 1980s and published a popular book on CSP; that book, simply titled Communicating Sequential Processes, is still regarded as one of the leading authorities on this language. CSP can be used to analyze software, computer systems, and some programming languages. The programming language Go, for example, has native concurrency and CSP features.

CSP breaks down processes that happen concurrently and interact with each other, using algebraic equations and logic to describe the interactions. This is known as process algebra. In his book, Hoare detailed the difference between events (specific moments of objects) and processes (how those objects behave over their life). An event might be described as x in a CSP equation, and a process might be described as Y. Events and processes are strictly differentiated. Guards are requirements that are placed before a command in CSP, laying down restrictions before a program command can be executed. These algebraic formulas present clear connections between computing systems and processes that run concurrently.










LATEST ARTICLES
Texting & Chat Abbreviations

From A3 to ZZZ we list 1,559 text message and online chat abbreviations to help you translate and understand today's texting lingo. Includes Top... Read More »

Huge List of Computer Certifications

Have you heard about a computer certification program but can't figure out if it's right for you? Use this handy list to help you decide. Read More »

STUDY GUIDES
Computer Architecture Study Guide

Computer architecture provides an introduction to system design basics for most computer science students. Read More »

Network Fundamentals Study Guide

Networking fundamentals teaches the building blocks of modern network design. Learn different types of networks, concepts, architecture and... Read More »

The Five Generations of Computers

Learn about each of the five generations of computers and major technology developments that have led to the computing devices that we use... Read More »