Milners Kalkül Kommunizierender Systeme (CCS) Arnaud Fietzke betreut durch Tim Priesnitz, Guido Tack Proseminar: Theorie kommunizierender Systeme Programming Systems Lab – Prof. Gert Smolka
Modellierung nebenläufiger Systeme a A = a.A‘ B = b.B‘ A‘ = b.A B‘ = c.B > A A‘ _ _ _ b b B‘ B < _ c
Modellierung nebenläufiger Systeme a A = a.A‘ B = b.B‘ A‘ = b.A B‘ = c.B A|B mit _ CCS A = a.A‘ B = b.B‘ A‘ = b.A B‘ = c.B > A A‘ _ b b B‘ B < _ c
Übersicht Einführung Syntax CCS Semantik CCS Idee Strukturelle Kongruenz Reaktion
Einführung Prozessalgebra: algebraische Modellierung von nebenläufigen Prozessen Darstellung komplexer Systeme mit Hilfe weniger Operatoren ermöglicht automatische Verifikation
Prozessalgebren: Ansätze CCS (Calculus of Communicating Systems) [Milner '80] CSP (Communicating Sequential Processes) [Hoare '85] ACP (Algebra of Communicating Processes) [Bergstra & Klop '84] LOTOS (Language of Temporal Ordered Specification) [Brinksma & Draft '88]
Syntax CCS Definition: P ::= A<a1,...,an> | S ai.Pi _ | P1|P2 Menge P der Prozessausdrücke: P ::= A<a1,...,an> mit I endliche Indexmenge iI | S ai.Pi 0 := mit I = 0 S ai.Pi a N N { t } N = {a,b,c,…} Namen _ | P1|P2 | new a P System von nebenläufigen Prozessen: P1 | … | Pn mit P1 ... = Pn ... ...
Semantik CCS Idee: "chemical machine" _ [Berry & Boudol '89] An “Ports“ können beobachtbare Aktionen stattfinden (a N N) _
Semantik CCS Idee: "chemical machine" _ [Berry & Boudol '89] Komplementäre “Ports“ sind Reaktionspunkte z.B. b und b _
Semantik CCS Idee: "chemical machine" [Berry & Boudol '89] "Moleküle" können sich annähern und reagieren annähern
Prozess-Kongruenz Definition : Äquivalenzrelation (reflexiv, symmetrisch, transitiv) über P mit a.P + M new a P P|R R|P a.Q + M new a Q Q|R R|Q falls P Q
Prozess-Kontext Definition : C ::= | a.C+M | new a C | C|P | P|C C[Q] : Substitution von [] in C durch Q Für C=[] gilt: C[Q] = Q [] Eine bestimmte Prozess-Kongruenz lässt sich durch ein Gleichungssystem definieren : 3
Prozess-Kongruenz erfüllt alle Gleichungen aus 3 für jede Sequenz Q1,…Qn (n≥1) von Ausdrücken gilt Q1 Qn falls Qi = C[P] und Qi+1 = C[P‘] und es gilt: P P‘ oder P‘ P 3 Eine bestimmte Prozess-Kongruenz lässt sich durch ein Gleichungssystem definieren : 3
Strukturelle Kongruenz Definition: Prozess-Kongruenz , definiert durch Gleichungen: (1) Änderung gebundener Namen (new b) a.b (new c) a.c Beispiel:
Strukturelle Kongruenz Definition: Prozess-Kongruenz , definiert durch Gleichungen: (1) Änderung gebundener Namen (2) Umordnung der Terme in Summen a.0 + b.0 b.0 + a.0 Beispiel:
Strukturelle Kongruenz Definition: Prozess-Kongruenz , definiert durch Gleichungen: (1) Änderung gebundener Namen (2) Umordnung der Terme in Summen (3) P|0 P , P|Q Q|P , P|(Q|R) (P|Q)|R
Strukturelle Kongruenz Definition: Prozess-Kongruenz , definiert durch Gleichungen: (1) Änderung gebundener Namen (2) Umordnung der Terme in Summen (3) P|0 P, P|Q Q|P, P|(Q|R) (P|Q)|R (4) new a (P|Q) P|new a Q falls a nicht frei in P new a 0 0 , , new ab P new ba P
Strukturelle Kongruenz Definition: Prozess-Kongruenz , definiert durch Gleichungen: (1) Änderung gebundener Namen (2) Umordnung der Terme in Summen (3) P|0 P, P|Q Q|P, P|(Q|R) (P|Q)|R (4) new a (P|Q) P|new a Q falls a nicht frei in P , new a 0 0 , new ab P new ba P (5) A<b> { } PA falls A(a) = PA b a
Strukturelle Kongruenz Definition: Prozess-Kongruenz , definiert durch Gleichungen: (1) Änderung gebundener Namen (2) Umordnung der Terme in Summen (3) P|0 P, P|Q Q|P, P|(Q|R) (P|Q)|R (4) new a (P|Q) P|new a Q falls a nicht frei in P , Notation: a Sequenz von Namen a1,…,an new a 0 0 , new ab P new ba P (5) A<b> { } PA falls A(a) = PA b a
Standardform Definition: Theorem: Ausdruck new a (M1|…|Mn) mit Mi nichtleere Summe (1 ≤ i ≤ n) ist in Standardform. Falls n=0, M1|…|Mn = 0 Falls a leer, fällt new a weg Theorem: Jeder Prozessausdruck ist strukturell kongruent zu einer Standardform.
Semantik nebenläufiger Prozessausdrücke Idee: "chemical machine" [Berry & Boudol '89] "Moleküle" können sich annähern und reagieren reagieren
Semantik nebenläufiger Prozessausdrücke Idee: "chemical machine" [Berry & Boudol '89] "Moleküle" können sich annähern und reagieren
Semantik nebenläufiger Prozessausdrücke Idee: "chemical machine" [Berry & Boudol '89] "Moleküle" können sich annähern und reagieren Reaktionen sind von aussen nicht mehr beobachtbar: t-Transitionen
Reaktion Definition: Relation auf P wird durch Regeln definiert: TAU : t.P + M P REACT : (a.P + M)|(a.Q + N) P|Q PAR : P P' P|Q P'|Q RES : P P' new a P new a P' STRUCT : P P' Q Q' falls P Q und P' Q'
Beispiel Inferenzbaum: A‘|B mit _ A = a.A‘ B = b.B‘ b.A|b.B‘ A|B‘ REACT A = a.A‘ B = b.B‘ A‘ = b.A B‘ = c.B _ STRUCT _ A‘|B A|B‘
Beispiel Alternative Reaktionen: P = a.0 | a.A | a.B _ _ P = a.0 | a.A | a.B Zwei Reaktionen sind möglich: _ P A|a.B
Beispiel Alternative Reaktionen: P = a.0 | a.A | a.B _ _ P = a.0 | a.A | a.B Zwei Reaktionen sind möglich: _ P A|a.B _ und P a.A| B Indeterminismus durch Reaktion
Referenzen Milner, R., Communicating and Mobile Systems: the π – Calculus, Cambridge University Press, 1999 Milner, Operational & Algebraic Semantics of Concurrent Processes Handbook of Theoretical Computer Science B, Elsevier, 1990