Algebra procesów komunikowania się
Algebra procesów komunikowania się (ACP) to algebraiczne podejście do wnioskowania o systemach współbieżnych . Należy do rodziny matematycznych teorii współbieżności znanych jako algebry procesów lub rachunki procesów . ACP został początkowo opracowany przez Jana Bergstrę i Jana Willema Klopa w 1982 roku w ramach próby zbadania rozwiązań niestrzeżonych równań rekurencyjnych. W większym stopniu niż inne przełomowe rachunki procesów ( CCS i CSP ), rozwój ACP koncentrował się na algebrze procesów i miał na celu stworzenie abstrakcyjnego, uogólnionego systemu aksjomatycznego dla procesów. W rzeczywistości termin algebra procesów został ukuty podczas badań co doprowadziło do AKP. [ potrzebne źródło ]
Nieformalny opis
ACP jest zasadniczo algebrą w sensie algebry uniwersalnej . Ta algebra jest sposobem opisywania systemów za pomocą wyrażeń procesów algebraicznych, które definiują składy innych procesów lub pewnych elementów pierwotnych.
prymitywy
, atomowe działania ( jako prymitywy. Niektóre akcje mają specjalne znaczenie, na akcja , która reprezentuje , oraz akcja , która reprezentuje cichą akcję (akcje abstrakcyjne, które nie mają określonej tożsamości).
Operatory algebraiczne
Akcje można łączyć, tworząc procesy przy użyciu różnych operatorów. Operatory te można z grubsza sklasyfikować jako zapewniające podstawową algebrę procesów , współbieżność i komunikację .
- Wybór i sekwencjonowanie - najbardziej podstawowymi operatorami algebraicznymi są alternatywny ( , który zapewnia wybór między akcjami, oraz operator sekwencjonowania ) , określa kolejność działań . Na przykład proces
- najpierw wybiera wykonanie albo lub , a następnie wykonuje akcję . Sposób wyboru między nie ma znaczenia i pozostaje Zauważ, że kompozycja alternatywna jest przemienna, ale kompozycja sekwencyjna nie (ponieważ czas płynie do przodu).
- Współbieżność – aby umożliwić opis współbieżności, ACP zapewnia operatory scalania i lewego scalania . Operator scalania, , reprezentuje równoległą kompozycję dwóch procesów, których poszczególne działania są przeplatane. Lewy operator scalania, jest operatorem pomocniczym o semantyce podobnej do scalania, ale zobowiązuje się zawsze wybierać swój początkowy krok z procesu po lewej stronie. Na przykład proces
- może wykonywać czynności w dowolnym z sekwencje . Z drugiej strony proces
- może wykonywać tylko sekwencje operatory lewego scalania zapewniają, że akcja jako pierwsza.
- Komunikacja — interakcja (lub komunikacja) między procesami jest reprezentowana za pomocą binarnego operatora komunikacji, . Na przykład działania i jako i zapisywanie elementu danych odpowiednio. Wtedy proces
- wartość prawego procesu składowego do lewego procesu składowego ( tj. jest z wartością wolne wystąpienia } w procesie przyjmuje tę wartość , a następnie zachowuje się jak połączenie i .
- Abstrakcja - operator abstrakcji , jest sposobem na „ukrycie” pewnych działań i traktowanie ich jako zdarzeń wewnętrznych w Akcje abstrakcyjne są konwertowane na cichą akcję krokową do
- . W niektórych przypadkach te ciche kroki można również usunąć z wyrażenia procesu w ramach procesu abstrakcji.
- , które w tym przypadku można zredukować do
- ponieważ zdarzenie jest już obserwowalne i nie ma obserwowalne efekty.
Definicja formalna
ACP zasadniczo przyjmuje aksjomatyczne, algebraiczne podejście do formalnej definicji swoich różnych operatorów. Przedstawione poniżej aksjomaty obejmują pełny system aksjomatyczny dla AKP ACP z abstrakcją)
Podstawowa algebra procesu
Korzystając z alternatywnych i sekwencyjnych operatorów kompozycji, ACP definiuje podstawową algebrę procesów , która spełnia aksjomaty
Impas
Poza podstawową algebrą dwa dodatkowe aksjomaty definiują relacje między operatorami alternatywnymi i operatorami sekwencjonowania oraz działaniem impasu .
Współbieżność i interakcja
Aksjomaty związane z operatorami scalania, lewego scalania i komunikacji to
Gdy operator komunikacji jest stosowany do samych działań, a nie do procesów, jest interpretowany jako funkcja binarna od działań do działań, . Definicja tej funkcji definiuje możliwe interakcje między procesami - te pary akcji, które nie stanowią interakcji, są odwzorowywane na akcję zakleszczenia, dozwolone pary interakcji są odwzorowywane na odpowiadające im pojedyncze akcje reprezentujące występowanie interakcja. Na przykład funkcja komunikacyjna może to określić
co wskazuje, że udana interakcja zostanie zredukowany do działania do . ACP zawiera również operator enkapsulacji dla niektórych , służy do konwersji nieudanych prób komunikacji (tj. elementów , które nie zostały zredukowane przez funkcję komunikacyjną) do działania impasu. Aksjomaty związane z funkcją komunikacyjną i operatorem enkapsulacji to
Abstrakcja
Aksjomaty związane z operatorem abstrakcji to
Zauważ, że akcja a na powyższej liście może przyjąć wartość δ (ale oczywiście δ nie może należeć do zbioru abstrakcji I ).
Formalizmy pokrewne
ACP służył jako podstawa lub inspiracja dla kilku innych formalizmów, które można wykorzystać do opisu i analizy systemów współbieżnych, w tym: