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 || Qaccetta 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
- ↑ Statistiche CiteSeer
- ↑ Pacchetto Google Go csp. Estratto il 26 giugno 2019 .