Processos comunicants seqüencials

De Viquipèdia
Dreceres ràpides: navegació, cerca

Processos comunicants seqüencials ,de sigles anglosaxones CSP (Communicating sequential processes), és un model de Programació d'ordinadors de sistemes concurrents basat en la comunicació entre processos. Definició del model:[1]

  • Estructures de control seqüencials: ordres amb guarda de Dijkstra: <condició o guarda> → <acció>
  • Execució concurrent dels processos.
  • Ordres especials d'entrada/sortida entre processos: Pj ! i Pi? X
    • La comunicació té lloc quan un procés Pi nomena a un altre procés Pj com a destí de la seva sortida i Pj nomena Pi com a origen de la seva entrada.
    • No hi ha buffering (coixí de missatges). Els processos que van a enviar o rebre missatges queden bloquejats fins que aconsegueixen la comunicació.
  • No es creen ni es destrueixen processos durant l'execució dels programes (són estàtics).
  • No hi ha recursivitat.

Relacionat[modifica | modifica el codi]

Occam Pi
CSP amb àlgebra de processos "calcul Pi" on els noms dels canals poden ser l'objecte transmès com a missatge.[2]
JoCaml
llenguatge funcional, extensió de OCaml, que implementa l'àlgebra de processos anomenada "càlcul Join" on les guardes són patrons de sincronisme (simultaneïtat de missatges a diversos canals), amb concurrència per pas de missatges asíncrons i síncrons.
llenguatge Hume
implementa concurrència per pas de missatges i sincronia de canals. Els processos s'agrupen en autòmats (construcció box) on l'entrada és una tupla de canals amb un conjunt d'alternatives de patrons de sincronisme (càlcul Join) i l'estat és a les bústies modificades per realimentació. Les comunicacions s'especifiquen com a cablejat entre autòmats (instrucció wire) i es poden descriure en un entorn gràfic IDE.[3][4]
Communicating Haskell Processes
biblioteca de Haskell que implementa CSP basada en mònades.[5]
Java JCSP
"Communicating Sequential Processes for Java" de la Univ. de Kent[6]
Join Java
implementació de càlcul Join sobre Java.[7][8]
Poliphonic C#
Implementació del Join calculus per a C#,[9] integrat al llenguatge Cw.[10]

Referències[modifica | modifica el codi]

  1. Using CSP versió en línia del llibre de Toni Hoare "Communicating Sequential Processes"
  2. Occam-Π
  3. Robert Pointon - Hume(anglès)
  4. Web del llenguatge Hume(anglès)
  5. Univ. de Kent - CHP: Communicating Haskell Processes(anglès)
  6. Univ. de Kent - JCSP(anglès)
  7. Univ. d'austràlia del sud - Join Java
  8. Join Java
  9. Poliphonic C#(anglès)
  10. El llenguatge Cw de Microsoft(anglès)