Pi beregning

-calculus i teoretisk datalogi - calculus of processer , oprindeligt udviklet af Robin Milner , Joachim Parrow og David Walker som en fortsættelse af arbejdet med calculus af kommunikerende systemer . Formålet med -calculus er at kunne beskrive parallel computing , hvis konfiguration kan ændre sig i løbet af en beregning.

Uformel definition

-calculus tilhører familien af ​​procesregninger . Faktisk er -calculus som en λ-calculus så minimal, at den ikke indeholder primitiver såsom tal , booleske udtryk , datastrukturer , variabler , funktioner eller flowkontroludsagn (f.eks. if-then-else, while).

-calculus definerer parallelle processer, der dynamisk interagerer med hinanden. Hver proces kan bestå af en eller flere aktiviteter , arrangeret sekventielt eller parallelt, og alternativt eller rekursivt. En handling kan være at sende eller modtage data over en kanal. En besked fra én proces til en anden indeholder et kanalnavn, der kan bruges til at svare. Navnet er en variabel [1] .

Man kan også sige, at -calculus er en åben teori, der afhænger af en eller anden teori om navne. For eksempel fra et operationelt synspunkt kan π-regningen repræsenteres som en procedure, der for en given teori om navne giver en teori om processer over disse navne .

Proceskonstruktioner

Centralt for -calculus er begrebet et navn. Enkeltheden i beregningen ligger i navnenes dobbelte rolle, som både fungerer som kommunikationskanaler og som variable. Følgende proceskonstruktioner er tilgængelige i kalkulationen (nøjagtige definitioner er givet i de følgende afsnit):

Minimalismen ved -calculus giver dig ikke mulighed for at skrive programmer i ordets sædvanlige betydning, men calculus kan nemt udvides. Det er især nemt at definere kontrolstrukturer (såsom rekursion , loops og sekventiel sammensætning) og datatyper (såsom førsteordensfunktioner, sandhedsværdier , lister og heltal ). Derudover er der foreslået udvidelser af -calculus til public-key kryptografi . Anvendt π-calculus , udviklet af Abadi og Fournet, giver disse forskellige udvidelser af π-calculus et formelt grundlag gennem vilkårlige datatyper .

Et lille eksempel

Nedenfor er et eksempel på en proces med tre parallelle komponenter. Kanalen er kun kendt i de to første komponenter.

De to første komponenter er i stand til at kommunikere gennem kanalen og binder sig til . Næste trin i processen:

I dette eksempel er det ikke påvirket, da det er defineret i det indre omfang af . Nu kan den anden og tredje parallelle komponent kommunikere gennem kanalen , mens den kommunikerer med . Næste trin i processen:

Bemærk, at siden det lokale navn er blevet udledt, er omfanget blevet udvidet til også at omfatte den tredje komponent. Endelig kan en kanal bruges til at sende et navn . Derefter stoppes alle processer.

Formel definition

Ansøgning

-calculus er en af ​​de mest populære formalismer i BPM-fællesskabet (Business Process Management) . For eksempel hævder populærlitteraturen (og kritiseres [3] [1] ), at XLANG , WSCI , BPML , BPEL og WS-CDL er baseret på denne beregning. I det mindste kan egenskaberne ved -calculus - rækkefølgen af ​​beregning, beskedbaseret kommunikation, mobilitet - tjene som grundlag for BPM-sprog [1] .  

En anden uventet brug af -calculus er modellering af biomolekylære systemer [4] .

Eksempel på forretningsproces

Følgende eksempel kan give en idé om at beskrive en forretningsproces ved hjælp af pi-calculus (omskrevet fra [1] ):

Kunde(ordre, kunde)= bestil <kunde>.kunde(fad) Tjeneren tager ordre(Ordre,OrderReady,OrderNotReady,Køkken)= ordre (kunde). køkken <ordreReady,orderNotReady> .Tjeneren bringer mad (ordre klar, ordre ikke klar, kunde) Tjeneren bringer mad (ordre klar, ordre ikke klar, kunde)= bestil Klar (fad). klient <parabol> + ordre ikke klar (beklager). klient <beklager> Køkken(køkken,ordreKlar,bestillingIkkeKlar)= køkken(ordreReady,orderNotReady). ordreklar <"borscht"> Restaurant= (ν zkz, klnt, klar, ikke klar, køkken) Klient(ccz,clnt) | Tjeneren tager imod ordren | Køkken (køkken, klar, ikke klar)

For dette eksempel er beregningen blevet udvidet med valgoperatoren (P + Q).

Noter

  1. 1 2 3 4 Havey, 2005 .
  2. WMP van der Aalst. Pi calculus versus Petrinets: Lad os spise "humblepie" i stedet for at puste "Pi-hypen" yderligere op . Hentet 2. april 2021. Arkiveret fra originalen 17. maj 2021.
  3. Regev A., Shapiro E. The π-calculus as an Abstraction for Biomolecular Systems // Modeling in Molecular Biology. Natural Computing Series  / Ciobanu G., Rozenberg G.. - Berlin, Heidelberg: Springer, 2004.

Litteratur