Skip to content

Latest commit

 

History

History
39 lines (34 loc) · 1.65 KB

communicating-sequential-processes.md

File metadata and controls

39 lines (34 loc) · 1.65 KB

CSP

  • a language

  • book on CSP: http://www.usingcsp.com/cspbook.pdf

  • describes patterns of interaction in a concurrent system

  • based on message passing via channels

  • is part of a family of mathematical theories called process algebra or process calculi

  • influenced:

    • occam
    • Go
  • the original paper from 1978 by Hoare

    • presented a programming language for concurrent systems
    • was later refined and had the process algebra added by other people
  • is a theory for creating modeling how concurrent processes can interact

  • there are tools for it that are used in aerospace and other fault-critical industries

  • has some similarites with the Actor model in that it is concerned with concurrent processes that exchanage messages. The main differences are

    1. CSP processes are anonymous - AM processes have identities
    2. In CSP the sender can't transmit until receiver is ready i.e. message send and receive happens at hte same time. In AM the send and receive is asynchonous
      • Each style can be used to build the other
    3. CSP uses channels to pass messages, AM sends messages to named actors
  • Implementations:

Actor model and "CSP model" are the two main choices for message passing programming langauges

Next steps: