Spojovací počet - Join-calculus - Wikipedia
![]() | Tento článek má několik problémů. Prosím pomozte vylepši to nebo diskutovat o těchto otázkách na internetu diskusní stránka. (Zjistěte, jak a kdy tyto zprávy ze šablony odebrat) (Zjistěte, jak a kdy odstranit tuto zprávu šablony)
|
The spojovací počet je procesní kalkul vyvinut v INRIA. Funkce join-calculus byla vyvinuta, aby poskytla formální základ pro návrh distribuovaných programovacích jazyků, a proto se záměrně vyhýbá komunikačním konstrukcím nalezeným v jiných procesních kalkulích, jako je například setkání komunikace, které je obtížné implementovat v distribuovaném prostředí.[1] Přes toto omezení je spojovací počet stejně expresivní jako plný π-počet. Bylo prokázáno kódování π-kalkulu ve spojovacím kalkulu a naopak.[2]
Kalkul join je členem π-počet rodina procesních kalkulů, a lze ji v jádru považovat za asynchronní π-kalkul s několika silnými omezeními:[3]
- Omezení rozsahu, příjem a replikovaný příjem jsou syntakticky sloučeny do jediného konstruktu, definice;
- Komunikace probíhá pouze na definovaných jménech;
- Pro každé definované jméno existuje přesně jeden replikovaný příjem.
Avšak jako programovací jazyk nabízí join-calculus alespoň jednu výhodu oproti π-kalkulu - jmenovitě použití vícecestné spojovací vzory, možnost porovnávat zprávy se zprávami z více kanálů současně.
Implementace
Jazyky založené na spojovacím počtu
Programovací jazyk join-calculus je nový jazyk založený na kalkulu procesu join-calculus. Je implementován jako tlumočník napsaný v OCaml a podporuje distribuované programování se statickým typem, transparentní vzdálenou komunikaci, mobilitu založenou na agentech a detekci selhání.[4]
- Ačkoli to není výslovně založeno na join-kalkulu, systém pravidel z KLIPY implementuje jej, pokud každé pravidlo při spuštění smaže své vstupy (při spuštění odvolá relevantní fakta).
Mnoho implementací join-calculus bylo vyrobeno jako rozšíření stávajících programovacích jazyků:
- JoCaml je verze OCaml rozšířeno o primitiva join-calculus
- Polyfonní C # a jeho nástupce Cω rozšířit C#
- MC # a paralelní C # rozšiřují polyfonní C #
- Připojte se k Javě rozšiřuje Jáva
- Souběžný základní návrh, který využívá spojovací počet
- JErlang (J je pro Join, erjang je Erlang pro JVM)[5]
Vkládání v jiných programovacích jazycích
Tyto implementace nemění základní programovací jazyk, ale zavádějí operace počtu kalkulů pomocí vlastní knihovny nebo DSL:
- ScalaJoins a Chymyst knihovny jsou v Scala
- Připojte se Einar Karttunen a syallop / Připojit-jazyk od Samuela Yallopa jsou DSL pro Join Calculus in Haskell
- Joinads - různé implementace spojovacího počtu ve Windows F#
- CocoaJoin je experimentální implementace v Cíl-C pro iOS a Mac OS X
- Knihovna Join Python je v Python 3
- C ++ přes Boost[6] (pro podporu od roku 2009, ca. v. 40, aktuální (19. prosince) je 72).
Reference
- ^ Cedric Fournet, Georges Gonthier (1995). „Reflexní CHAM a spojovací kalkul“. Citovat deník vyžaduje
| deník =
(Pomoc), str. 1 - ^ Cedric Fournet, Georges Gonthier (1995). „Reflexní CHAM a spojovací kalkul“. Citovat deník vyžaduje
| deník =
(Pomoc), str. 2 - ^ Cedric Fournet, Georges Gonthier (1995). „Reflexní CHAM a spojovací kalkul“. Citovat deník vyžaduje
| deník =
(Pomoc), str. 19 - ^ Cedric Fournet, Georges Gonthier (2000). „Spojovací kalkul: jazyk pro distribuované mobilní programování“. Citovat deník vyžaduje
| deník =
(Pomoc) - ^ „JErlang: Erlang with Joins“. Archivovány od originál dne 8. 12. 2017. Citováno 2015-04-18.
- ^ Yigong Liu - knihovna asynchronní koordinace zpráv a souběžnosti zpráv
externí odkazy
- INRIA, Připojte se na domovskou stránku Calculus
- Microsoft Research, Připojit kalkul: jazyk pro distribuované mobilní programování