Comunicazione di processi sequenziali

Comunicare processi sequenziali ( CSP ) è un algebra processo sviluppato da Tony Hoare alla Oxford University per descrivere l' interazione tra i comunicanti processi . L'idea fu introdotta per la prima volta come linguaggio imperativo da Tony Hoare nel 1978, poi espansa da lui in un'algebra formale e resa famosa nel 1985 con la pubblicazione del libro con lo stesso titolo Communicating Sequential Processes . Secondo CiteSeer, questo libro è stato il terzo lavoro più citato in informatica nel 2003 .

Per distinguerlo dal linguaggio imperativo originale CSP, l'algebra dei processi viene talvolta chiamata anche Theoretical Communicating Sequential Processes ( TCSP ).

Applicazioni

I linguaggi di programmazione Go e Occam contengono implementazioni pratiche del CSP. JCSP (Comunicare sequenziale Processi di Java) è la combinazione di CSP e Occam concetti in un Java - API . Un'implementazione corrispondente per C ++ è disponibile con C ++ CSP2 . Ulteriori applicazioni sono la Message Passing Interface e la Parallel Virtual Machine .

Estratto dalla sintassi e dalla semantica

  • CSP utilizza lettere maiuscole per gli stati della macchina e lettere minuscole per gli eventi . Le transizioni di stato innescate dagli eventi sono indicate da una freccia (→).
    • (x → B)   L'evento x è seguito dallo stato B
    • (x → y → B)   La sequenza degli eventi x e quindi y è seguita dallo stato B
  • In CSP, gli eventi condizionali vengono indicati specificando l'operatore di selezione | Sono definiti.
    • (x → A | y → B)   Se evento x, allora state A. Se evento y, allora state B
  • L'insieme di stati ed eventi che un automa definito da CSP accetta è indicato dall'alfabeto αP. Ogni macchina contiene uno stato di STOP aggiuntivo in αP, dal quale un'ulteriore transizione di stato non è più consentita per definizione.
  • La composizione sequenziale è resa possibile dall'introduzione di stati intermedi.
    • P = (x → A), A = (y → B)   è equivalente a
    • P = (x → y → B)
  • La connessione parallela dei processi, che ha dato il nome a questa algebra del processo, è indicata dal simbolo || raggiunto.
    • P = (a → (b → P | x → b → P))   con αP = {a, b, x}
    • Q = (a → b → Q | y → b → Q)   con αQ = {a, b, y}
    • P || Q   accetta tutte le stringhe {ab, axb, yb} e qualsiasi combinazione sequenziale
  • Le ricorsioni sono possibili.
    • P = (x → y → P)   genera la sequenza infinita di eventi xyxyxy ...

link internet

Prove individuali

  1. Statistiche CiteSeer
  2. Pacchetto Google Go csp. Estratto il 26 giugno 2019 .