Rachunek systemów komunikujących się - Calculus of communicating systems
Rachunek systemów komunikujących ( CCS ) jest rachunek proces wprowadzony przez Robin Milner około 1980 roku i tytuł książki opisującej rachunku. Jego działania modelują niepodzielną komunikację między dokładnie dwoma uczestnikami. Język formalny zawiera prymitywy opisujące kompozycję równoległą, wybór między działaniami i ograniczenie zakresu. CCS jest przydatny do oceny jakościowej poprawności właściwości systemu, takiego jak zakleszczenia lub livelock .
Według Milnera „Nie ma nic kanonicznego w wyborze podstawowych kombinatorów, mimo że zostały one wybrane z wielką dbałością o ekonomię. To, co charakteryzuje nasz rachunek, to nie dokładny wybór kombinatorów, ale raczej wybór interpretacji i ram matematycznych. ”.
Wyrażenia języka są interpretowane jako oznakowany system przejściowy . Pomiędzy tymi modelami bispodobieństwo jest używane jako równoważność semantyczna.
Składnia
Mając zestaw nazw akcji, zestaw procesów CCS jest zdefiniowany przez następującą gramatykę BNF :
Części składni są w kolejności podanej powyżej
- nieaktywny proces
- nieaktywny proces jest prawidłowym procesem CCS
- akcja
- proces może wykonać akcję i kontynuować jako proces
- identyfikator procesu
- napisz, aby użyć identyfikatora do odwoływania się do procesu (który może zawierać sam identyfikator , tj. dozwolone są definicje rekurencyjne)
- wybór
- proces może przebiegać jako proces lub proces
- kompozycja równoległa
- mówi, że procesy i istnieją jednocześnie
- zmiana nazwy
- to proces ze wszystkimi akcjami nazwanymi przemianowanymi na
- ograniczenie
- jest proces bez działania
Powiązane rachunki, modele i języki
- Komunikowanie się procesów sekwencyjnych (CSP), opracowane przez Tony'ego Hoare'a , jest językiem formalnym, który powstał w podobnym czasie co CCS.
- Algebra procesów Komunikowanie (ACP) został opracowany przez Jana Bergstra i Jan Willem Klop w 1982 roku, i używa aksjomatyczną podejście (w stylu algebry uniwersalnej ) do rozumu o podobnej klasy procesów jak CCS.
- Pi-rachunek , opracowany przez Robin Milner , Joachim Parrow i Davida Walkera w późnych latach 80-tych rozciąga CCS z mobilnością łączy komunikacyjnych, pozwalając procesy komunikowania nazwiska samych kanałów komunikacji.
- PEPA , opracowany przez Jane Hillston, wprowadza synchronizację aktywności pod względem wykładniczo rozłożonych stawek i wyboru probabilistycznego, umożliwiając ocenę wskaźników wydajności.
- Reversible Communicating Concurrent Systems (RCCS) wprowadzony przez Vincenta Danosa , Jeana Krivine'a i innych, wprowadza (częściową) odwracalność w realizacji procesów CCS.
Niektóre inne języki oparte na CCS:
- Rachunek systemów nadawczych
- Język specyfikacji zamówień czasowych (LOTOS)
- Process Calculus for Spatally-Explicit Ecological Models (PALPS) jest rozszerzeniem CCS z probabilistycznym wyborem, lokalizacjami i atrybutami lokalizacji
- Silnik interpretera języka orkiestracji Java (Jolie)
Modele, które zostały wykorzystane w badaniu systemów podobnych do CCS:
Bibliografia
- Robin Milner: rachunek systemów komunikacyjnych , Springer Verlag, ISBN 0-387-10235-3 . 1980.
- Robin Milner, Komunikacja i współbieżność , Prentice Hall, International Series in Computer Science, ISBN 0-13-115007-3 . 1989