Communicating Sequential Processes
Communicating Sequential Processes (CSP) ist eine von Tony Hoare an der Universität Oxford entwickelte Prozessalgebra zur Beschreibung von Interaktion zwischen kommunizierenden Prozessen. Die Idee wurde als imperative Sprache 1978 von Tony Hoare vorgestellt, dann von ihm zu einer formalen Algebra ausgebaut und 1985 mit der Veröffentlichung des Buchs mit dem gleichnamigen Titel Communicating Sequential Processes berühmt. Dieses Buch war 2003 laut CiteSeer bereits das dritthäufigst zitierte Werk der Informatik.[1]
Als Abgrenzung zur ursprünglichen imperativen Sprache CSP wird die Prozessalgebra teilweise auch als Theoretical Communicating Sequential Processes (TCSP) bezeichnet.
Anwendungen
- Die Programmiersprachen Go[2], Occam und Crystal beinhalten praktische Implementierungen der CSP.
- JCSP (Communicating Sequential Processes for Java) ist die Verbindung von CSP- und Occam-Konzepten in einer Java-API.
- Mit C++CSP2 ist eine entsprechende Implementierung für C++ verfügbar.
- das Message Passing Interface
- die Parallel Virtual Machine.
Auszug aus der Syntax und Semantik
- CSP verwendet Großbuchstaben für Zustände des Automaten sowie Kleinbuchstaben für Ereignisse. Die durch Ereignisse ausgelösten Zustandsübergänge werden durch einen Pfeil (→) gekennzeichnet.
(x → B)Auf das Ereignis x folgt der Zustand B(x → y → B)Auf die Ereignisfolge x und dann y folgt Zustand B
- In CSP werden bedingte Ereignisse durch Angabe des Auswahloperators | definiert.
(x → A | y → B)Wenn Ereignis x, dann Zustand A. Wenn Ereignis y, dann Zustand B
- Die Menge der Zustände und Ereignisse, die ein über CSP definierter Automat akzeptiert, wird durch das Alphabet αP angegeben. Jeder Automat enthält einen zusätzlichen Zustand STOP in αP, aus dem ein weiterer Zustandsübergang per Definition nicht mehr erlaubt ist.
- Sequentielle Komposition wird durch das Einführen von Zwischenzuständen ermöglicht.
P = (x → A), A = (y → B)ist äquivalent zuP = (x → y → B)
- Die Parallelschaltung von Prozessen, die dieser Prozessalgebra den Namen gab, wird durch die Angabe des Symbols || erreicht.
P = (a → (b → P | x → b → P))mit αP = {a, b, x}Q = (a → b → Q | y → b → Q)mit αQ = {a, b, y}P || Qakzeptiert alle Zeichenfolgen {ab, axb, yb} sowie beliebige sequentielle Kombinationen
- Rekursionen sind möglich.
P = (x → y → P)generiert die unendliche Abfolge der Ereignisse xyxyxy…
Weblinks
Einzelnachweise
- ↑ CiteSeer Statistik
- ↑ Google Go package csp. Abgerufen am 26. Juni 2019 (englisch).
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.