Színész modell

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2020. július 6-án felülvizsgált verziótól ; az ellenőrzések 11 szerkesztést igényelnek .

A színészmodell a párhuzamos számítások  matematikai modellje , amely a színész fogalma köré épül ( angol.  actor  "actor; acting Subjekt"), amelyet a párhuzamos végrehajtás univerzális primitívjének tekintenek. Ebben a modellben a szereplők úgy lépnek kapcsolatba, hogy üzeneteket cserélnek más szereplőkkel, és a kapott üzenetekre reagálva mindegyikük helyi döntéseket hozhat, új szereplőket hozhat létre, saját üzeneteket küldhet, és meghatározhatja, hogyan válaszoljon a következő üzenetekre.

Számos párhuzamos rendszerek gyakorlati megvalósításának elméleti alapjaként jött létre .

Történelem

A modell fő gondolatait és alapjait 1973 -ban Hewitt, Bishop és Steiger [1] publikációja fektette le . A Lisp , Simula programozási nyelvek és a Smalltalk korai verziói , valamint a parametrikus védelem és a csomagváltás módszerei befolyásolták a modellalkotás folyamatát . A modell megalkotásának fő motivációja az elosztott számítástechnikai rendszerek felépítése volt , amelyek több száz és ezer független számítógépre épülnek, amelyek saját lokális memóriával és kommunikációs interfésszel vannak felszerelve [2] . A többprocesszoros rendszerek és a többmagos architektúrák megjelenésével az aktormodell iránti érdeklődés az elosztott rendszerek kontextusán kívül is megnőtt.

1975-ben kidolgozták az operatív szemantikát a színészmodellhez [3] [4] . 1977-ben kidolgozták a színészmodellek axiomatikus törvényszerűségeinek rendszerét [5] . 1981-ben létrehozták a modell denotációs szemantikáját (átmenetek szemantikája) [2] [6] , 1985-ben fejlesztették és általánosították [7] ; e munkák eredményeként a színészmodellek elméletét kidolgozottnak és kidolgozottnak ismerik el.

Az 1990-es években olyan formalizmusokat hoztak létre, amelyek nem teljesen felelnek meg az aktormodellnek (nem formalizálják a garantált üzenettovábbítást), de gyakorlati érdeklődésre számot tartóak, különösen számos különböző aktor algebra [8] [9] és lineáris logikán alapuló értelmezés. [10] .

Alapfogalmak

Az objektum-orientált programozás filozófiájának analógiájával , ahol minden primitívet objektumnak tekintünk, az aktormodell kiemeli a „szereplő” mint univerzális entitás fogalmát. A szereplő egy számítási entitás, amely egy fogadott üzenetre reagálva egyidejűleg:

Nem feltételezzük, hogy a fenti műveleteknek van egy meghatározott sorrendje, és mindegyik párhuzamosan végrehajtható.

A feladó elkülönítése a küldött üzenetektől az aktor modell alapvető vívmánya volt: üzenettovábbítás formájában aszinkron kommunikációt és struktúrák vezérlését biztosítja [11] .

Az üzenetek címzettjeit egy cím azonosítja, amelyet néha "postacímnek" is neveznek. Így egy színész csak azokkal a szereplőkkel léphet kapcsolatba, akiknek a címe van, tud címeket kinyerni a kapott üzenetekből, vagy előre tudhatja azokat, ha a színész maga hozta létre.

A modellre jellemző a számítások inherens párhuzamossága a szereplőkön belül és a szereplők között, a szereplők dinamikus létrehozása, a szereplők címeinek beillesztése az üzenetekbe, valamint az üzenetek érkezési sorrendjének korlátozása nélkül , csak közvetlen aszinkron üzenetküldés révén való interakció.

Alkalmazások

A szereplőmodell modellezési, megértési és érvelési alapként használható számos párhuzamos rendszeren , például:

Üzenetátadási szemantika

Korlátlan, nem determinisztikus nézeteltérések

Talán az első párhuzamos programok a megszakításkezelők voltak . Működés közben a számítógépnek általában reagálnia kell azokra a külső eseményekre, amelyek egy korábban ismeretlen időpontban fordulhatnak elő (az éppen futó programhoz képest aszinkron módon) - például azért, hogy kívülről információkat (karaktereket a billentyűzetről) kapjon. , csomagok a hálózatról stb.). Az ilyen események leghatékonyabb kezelése úgynevezett megszakításokkal valósul meg. Amikor egy esemény bekövetkezik, az aktuális program végrehajtása "megszakad", és elindul a megszakításkezelő , amely elvégzi az eseményre való reagáláshoz szükséges műveleteket (például fogadja a bejövő információkat és egy pufferben tárolja, ahonnan később olvasható), ami után a főprogram onnan folytatja a munkát, ahol abbahagyta .

Az 1960-as évek elején a megszakításokat elkezdték használni több program egyidejű futtatásának szimulálására egyetlen processzoron [13] . Az osztott memóriával való párhuzamosság jelenléte a párhuzamosság- szabályozás problémájához vezetett. Kezdetben ezt a feladatot egy külön számítógépen lévő mutexek egyikeként képzelték el . Edsger Dijkstra szemaforokat fejlesztett ki , majd 1971 és 1973 között Charles Hoare és Per Hansen monitorokat [14] [15] [16] fejlesztettek ki a mutex probléma megoldására . Azonban ezek a megoldások egyike sem hozott létre olyan konstrukciókat programozási nyelveken, amelyek a megosztott erőforrásokhoz való hozzáférést tartalmaznák. A kapszulázást később Hewitt és Atkinson végezte el sorosító konstrukciók segítségével ([Hewitt, Atkinson 1977, 1979] és [Atkinson 1980]).

Az első számítási modellek (pl. Turing -gép , Postagép , lambda-számítás stb.) matematikán alapultak, és a globális állapot fogalmát használták a "számítási lépés" meghatározására (később ezeket a fogalmakat McCarthy , ill . Dijkstra [17] [18 ] ). Minden számítási lépés az egyik globális számítási állapotból a másikba ment. A globális állapot megközelítést az automataelméletben is folytatták véges automaták és veremgépek esetében, beleértve azok nem determinisztikus változatait is. Az ilyen nem-determinisztikus automaták korlátozott non-determinizmus tulajdonsággal rendelkeznek. Azaz, ha a gép mindig áll, mielőtt a kezdeti állapotba kerülne, akkor az állapotok száma korlátozott.

Dijkstra továbbfejlesztette a nem-determinisztikus globális állam megközelítést. Dijkstra modellje vitára adott okot a korlátlan nondeterminizmusról, a párhuzamos számítás azon tulajdonságáról, amelynél a kérés kiszolgálásának késleltetési ideje korlátlanná válhat a megosztott erőforrásokért folyó arbitrázsverseny eredményeként, ugyanakkor garantálja, hogy a kérés végül megtörténik. szervizelve. Hewitt azzal érvelt, hogy a színészmodellnek garanciákat kell nyújtania egy szolgáltatás nyújtására. Bár Dijkstra modelljében nem lehet korlátlan idő a szekvenciális műveletek számítógépen történő végrehajtása között, egy párhuzamosan futó program, amely szigorúan meghatározott állapotban kezdte meg munkáját, csak korlátozott számú állapotban szakítható meg [18] ] . Ezért a Dijkstra modellje nem nyújthat garanciát a szolgáltatás nyújtására. Dijkstra azzal érvelt, hogy lehetetlen megvalósítani a korlátlan nondeterminizmust.

Hewitt másként érvelt: nincs korlátozva a konfliktusmegoldó választottbírónak nevezett számítási rész munkájára fordított idő. Az ilyen helyzetek megoldásával a választottbírák foglalkoznak. A számítógép órája aszinkron módon működik a külső bemenetekkel: billentyűzet bemenet, lemezelérés, hálózati bemenet stb. Tehát korlátlan ideig tarthat egy számítógépre küldött üzenet fogadása, és ezalatt a számítógép korlátlan számú állapoton mehet keresztül.

A korlátlan non-determinizmus a régióelméletre épülő Klinger matematikai modellt alkalmazó aktormodell jellemzője [2] . A színészmodellben nincs globális állapot.

Közvetlen kommunikáció és aszinkron

A szereplőmodellben lévő üzenetek nem feltétlenül pufferelve vannak. Ez éles különbség a szimultán számítási modell korábbi megközelítéseihez képest. A pufferelés hiánya sok félreértést okozott a színészmodell fejlesztése során, és a mai napig vita tárgya. Egyes kutatók azzal érvelnek, hogy az üzenetek a "levegőben" vagy a "környezetben" vannak pufferelve. Ezenkívül az aktormodellben szereplő üzenetek egyszerűen elküldésre kerülnek (például az IP -ben lévő csomagok ). Nincs szükség szinkron kézfogásra a címzettel.

Az üzenetekben új szereplők létrehozása és címek átadása változó topológiát jelent

A színészmodell természetes fejlődése a címek üzenetek átadásának képessége volt. A csomagkapcsolt hálózatok hatására Hewitt egy új párhuzamos számítási modell kidolgozását javasolta, amelyben a kapcsolatnak egyáltalán nem lenne kötelező mezője, amelyek mindegyike üres lehet. Természetesen, ha az üzenet küldője azt szeretné, hogy a címzett olyan címekhez is hozzáférjen, amelyekkel még nem rendelkezik, akkor a címet az üzenetben el kell küldeni.

A számítás során előfordulhat, hogy üzenetet kell küldeni egy olyan címzettnek, akitől később választ kell kapni. Ennek módja egy másik szereplő címét tartalmazó üzenet küldése, amelyet önéletrajznak neveznek (ezt néha folytatásnak vagy hívásveremnek is nevezik ). A címzett ezután létrehozhat egy válaszüzenetet, amelyet a folytatáskor el kell küldeni .

A szereplők létrehozása, valamint a résztvevők címeinek üzenetekben való szerepeltetése azt jelenti, hogy a szereplőmodell potenciálisan változó topológiával rendelkezik az egymáshoz való viszonyukban, hasonlóan a Simula nyelv objektumaihoz, amelyeknek szintén változó topológiája van az egymáshoz való viszonyukban.

Lényegében egyszerre

A korábbi, szekvenciális folyamatok kombinálásán alapuló megközelítéssel ellentétben a szereplőmodellt lényegében szimultán modellként tervezték. Ahogy az aktormodellek elméletében is meg van írva, a benne lévő sorozat egy szimultán számításokból adódó speciális eset.

Nincsenek üzenetrendelési követelmények

Hewit ellenezte azt a követelményt, hogy az üzeneteknek abban a sorrendben kell megérkezniük a színészmodellhez, ahogyan azokat elküldték. Ha a bejövő üzeneteket rendelni kívánjuk, akkor ezt egy actor queue-val lehet modellezni, amely ezt a funkciót biztosítja. Az ilyen szereplők sorai a bejövő üzeneteket úgy rendezik, hogy azok FIFO sorrendben érkezzenek . Általánosságban elmondható, hogy ha egy X szereplő M1 üzenetet küld egy Y szereplőnek , majd ugyanaz a X szereplő egy másik M2 üzenetet küld Y - nak , akkor nincs követelmény, hogy M1 -nek M2 előtt érkezzen Y -ba .

Ebben a tekintetben az aktor modell a csomagkapcsoló rendszert tükrözi, ami nem garantálja, hogy a csomagok a küldésük sorrendjében fognak érkezni. Az üzenetkézbesítési rendelési garanciák hiánya lehetővé teszi a csomagváltó rendszer számára a csomagok pufferelését, több útvonal használatát a csomagok küldésére, a sérült csomagok újraküldését és egyéb optimalizálási technikák alkalmazását.

Például a szereplők használhatnak üzenetfeldolgozó folyamatot. Ez azt jelenti, hogy az M1 üzenet feldolgozása során a szereplő megváltoztathatja a következő üzenet feldolgozásához használt viselkedést. Ez különösen azt jelenti, hogy még egy M2 üzenet feldolgozását megkezdheti, mielőtt az M1 feldolgozása befejeződik . Csak azért, mert egy szereplő jogosult egy üzenetfeldolgozó folyamat használatára, még nem jelenti azt, hogy ezt a folyamatot kell használnia. Az, hogy egy üzenetet továbbítanak-e vagy sem, technikai kompromisszum kérdése. Honnan tudhatja egy külső szemlélő, hogy egy színész üzenetfeldolgozása átment a csővezetéken? Ebben a tekintetben nincs kétség afelől, hogy egy színész használja-e a csővezeték-képességet. Csak akkor fordulhat elő a várt viselkedéstől eltérő dolog, ha egy adott megvalósításban a csővezetékes optimalizálás végrehajtása helytelenül történik.

Helység

Az aktormodell másik fontos jellemzője a lokalitás: az üzenet feldolgozása során a szereplő csak arra a címre küldhet üzenetet, amelyet az üzenetből kapott, azokra a címekre, amelyekkel már az üzenet átvétele előtt rendelkezett, illetve azokra a címekre, amelyeket a feldolgozás során létrehozott. üzenet.

A lokalitás azt is jelenti, hogy egyszerre több címváltozás nem történhet meg. Ebben a tekintetben az aktor modell eltér néhány más párhuzamossági modelltől, például a Petri-hálóktól , amelyekben az implementációk egyszerre több pozícióból távolíthatók el és különböző címekre helyezhetők el.

Aktorrendszerek összetétele

Az a gondolat, hogy a szereplők rendszereit nagyobb entitásokba állítsák össze , a modularitás fontos aspektusa, amelyet a Gool Ag Ph.D.

Viselkedés

Az aktormodell fő újítása a viselkedés fogalmának bevezetése volt, amelyet matematikai függvényként határoztak meg, amely kifejezi a cselekvő cselekedeteit üzenetek feldolgozásakor, beleértve egy új viselkedés meghatározását a következő bejövő üzenet feldolgozásához. A viselkedés biztosítja a párhuzamosság matematikai modelljének működését.

A viselkedés az aktormodellt is megszabadítja a megvalósítás részleteitől, mint például a Smalltalk-72-ben a szál értelmező marker. Fontos azonban megérteni, hogy az aktormodell által leírt rendszerek hatékony megvalósítása fejlett optimalizálást igényel.

Más párhuzamos rendszerek szimulációja

Más párhuzamossági rendszerek (például folyamatszámítás ) modellezhetők az aktormodellben a kétfázisú véglegesítési protokoll segítségével [19] .

Számítási reprezentációs tétel

Az aktor modellben létezik egy számítási reprezentációs tétel zárt rendszerekre, abban az értelemben, hogy nem kapnak üzeneteket kívülről. A matematikai jelölésben a kezdeti viselkedés legjobb közelítéseként egy zárt rendszert, amelyet S - ként jelölünk, ⊥ S -nek építettünk fel, egy S -re felépített közelítő S progressziós viselkedési függvény segítségével a következőképpen (Hewitt 2008-as publikációja szerint):

Jelölje S ≡ ⊔ i∈ω progresszió S i (⊥ S )

Így S matematikailag jellemezhető minden lehetséges viselkedésével (beleértve a korlátlan nondeterminizmus figyelembevételét is). Az S jelölése ugyan nem S implementációja , de felhasználható a Church-Turing tézis [20] következő általánosításának bizonyítására : ha egy zárt aktorrendszer egy aktorprimitíve hatékony, akkor lehetséges kimenetei rekurzívan megszámlálhatók. A bizonyítás közvetlenül a számítási reprezentációs tételből következik.

Kapcsolat a matematikai logikával

A színészmodell fejlődése érdekes kapcsolatban áll a matematikai logikával. Fejlesztésének egyik fő motivációja a Planner programozási nyelv fejlesztése során felmerült szempontok kezelésének szükségessége volt . A színészmodell eredeti megfogalmazása után fontossá vált a modell erejének meghatározása Robert Kowalski téziséhez képest, amely szerint "a számítások következtetések alapján csoportosíthatók". Kowalski tézise hamisnak bizonyult a színészmodellben végzett szimultán számításoknál. Ez az eredmény továbbra is vitatható, és ellentmond néhány korábbi elképzelésnek, mivel Kowalski tézise igaz a szekvenciális számításokra, sőt néhány párhuzamos számításra is, például lambda-számításokra.

Ennek ellenére történtek kísérletek a logikai programozás kiterjesztésére a párhuzamos számítástechnikára. Hewitt és Aga egy 1999-es cikkében azonban azt állítják, hogy az eredményül kapott rendszer nem deduktív a következő értelemben: a párhuzamos logikai programozási rendszerek számítási lépései nem következnek deduktív módon az előző lépésekből.

Migráció

A migráció a színészmodellben a színész azon képessége, hogy megváltoztassa a helyét. Aki Yonezawa például dolgozatában egy olyan postai szolgáltatást modellezett, amelyben a kliens szereplők beléphetnek, futás közben helyet változtathatnak és kiléphetnek. A vándorolni tudó színészt olyan színészként modellezték, akinek egy meghatározott helyszíne változik, amikor a színész vándorol. Ennek a szimulációnak a megbízhatósága azonban ellentmondásos, és kutatás tárgya.

Biztonság

A szereplőket a következő módok egyikével lehet biztosítani:

Actor Address Synthesis

A színészmodell egyik finom pontja a színész címének szintetizálásának képessége. Egyes esetekben a biztonsági rendszer letilthatja a címek szintézisét. Mivel egy színész megszólítása csak egy bit karakterlánc, nyilván lehetséges szintetizálni, bár ha elég hosszú a bitsor, akkor elég nehéz, sőt lehetetlen megtalálni a színész címét. A SOAP azt az URL -t használja végpont címként, ahol a szereplő található . Mivel az URL egy karakterlánc, nyilván lehetséges szintetizálni, bár titkosítás alkalmazása esetén szinte lehetetlen felvenni a karakterláncot.

A szereplőcím-szintézist általában leképezéssel modellezik. Az ötlet az, hogy a szereplőrendszer segítségével leképezzük a szereplők tényleges címét. Például egy számítógép memóriastruktúrája modellezhető szereplők rendszereként, amely leképezést ad. A SOAP -címek esetében ez a DNS - modellezés és az URL - leképezés .

Különbség a többi párhuzamos üzenetküldési modelltől

Robin Milner első publikált munkája a párhuzamosságról [21] figyelemre méltó, hogy nem szekvenciális folyamatösszetételen alapult, ami különbözött a szereplőmodelltől, mivel rögzített számú folyamaton, a sortopológiában használt sortopológiában rögzített számú hivatkozáson alapult. szinkronizálja a linket. Az Anthony Hoare [22] által közzétett eredeti Cooperating Serial Processes (CSP) modell azért különbözik az aktor modelltől, mert rögzített számú, fix topológiában összekapcsolt, és folyamaton alapuló szinkron üzenettovábbítással kommunikáló folyamatok párhuzamos összetételén alapul. neveket. A CSP későbbi verziói eltávolodtak a folyamatneveken alapuló kommunikációtól, és átvették a csöveken keresztüli névtelen kommunikáció elvét. Ezt a megközelítést alkalmazzák Milnernek a kommunikáló rendszerek számításáról és a pi-kalkulusról szóló munkájában is .

Milner és Hoare mindkét korai modellje korlátozott nondeterminizmussal rendelkezik. A kölcsönható rendszerek modern elméleti modelljei [23] közvetlenül biztosítják a korlátlan nondeterminizmust.

Relevancia

Negyven évvel a Moore-törvény megjelenése után a chipek teljesítményének folyamatos növekedése a lokális és globális masszív párhuzamosság módszereinek köszönhető. A helyi párhuzamosságot a 64 bites többmagos mikroprocesszorok új chipjeiben, a többchipes modulokban és a nagy teljesítményű kommunikációs rendszerekben alkalmazzák. A globális párhuzamosság jelenleg engedélyezett az új vezetékes és vezeték nélküli szélessávú csomagkapcsolt hardverekben. A tárolókapacitás mind a lokális, mind a globális párhuzamosság miatt exponenciálisan növekszik.

A modell a számítástechnikai rendszerek felépítésének alábbi problémáinak megoldására irányul:

Az aktormodellekbe bevezetett ötletek közül sokat ma már többügynökös rendszerekben is alkalmaznak ugyanezen okokból [24] . A fő különbség az, hogy a rendszer ügynöke (a legtöbb definícióban) további korlátozásokat támaszt a szereplőkkel szemben, jellemzően kötelezettségvállalások és célok használatára kötelezi őket.

Az aktor modellt számítási felhő kliensekben is használják [25] .

Programozás színészekkel

A színésztámogatással rendelkező korai programozási nyelvek közé tartozik az Act 1, 2 és 3 [26] [27] , Acttalk [28] , Ani [29] , Cantor [30] , Rosette [31]

Újabb színészmodell-orientált nyelvek: Actor-Based Concurrent Language (ABCL), ActorScript, AmbientTalk [32] , Axum [33] . A színész fogalmát használó általános célú programozási nyelvek közé tartozik az E , Elixir [34] , Erlang , Io , SALSA [35] , Scala [36] [37] .

A szereplőkkel rendelkező könyvtárakat és táblázatstruktúrákat úgy fejlesztették ki, hogy színészszerű programozási stílust biztosítsanak olyan nyelveken, amelyek nem rendelkeznek beépített szereplőkkel.

Könyvtárak és táblaszerkezetek szereplőkkel
Név Utolsó megjelenési dátum Engedély Programozási nyelvek
ActiveJava 2008 ? Jáva
Színész 2013-05-31 MIT Jáva
Színész-CPP 2012-03-10 [38] GPL 2.0 C++
Actor Framework 2013-11-13 Apache 2.0 .HÁLÓ
ActorKit 2011. 09. 13. [39] BSD Célkitűzés-C
Akka 2015-04-23 Apache 2.0 Java és Scala
Akka.NET 2016-01-18 Apache 2.0 .HÁLÓ
C++ Actor Framework (CAF) 2015. 11. 25. [40] Boost Software License 1.0 és BSD 3-Clause C++11
Celluloid 2016-01-19 [41] MIT rubin
Haskell felhő 2015-06-17 [42] BSD Haskell
CloudI 2015. 12. 24. [43] BSD C/C++, Elixir/Erlang/LFE, Java, Javascript, Perl, PHP, Python, Ruby
Funkcionális Java 2016-02-15 [44] BSD Jáva
GPars 2014-05-09 [45] Apache 2.0 Groovy
jetlang 2013-05-30 [46] ÚjBSD Jáva
Korus 2010-02-04 GPL 3 Jáva
[ 47 ] 2011. 10. 13. [48] MIT Jáva
LabVIEW Actor Framework 2012-03-01 [49] ? LabVIEW
libprocess 2013-06-19 Apache 2.0 C++
NAct 2012-02-28 LGPL 3.0 .HÁLÓ
OOSMOS 2016-02-17 [50] GPL 2.0 és kereskedelmi C, C++
Pálya 2016-02-16 [51] ÚjBSD Jáva
Orleans 2019-06-04 [52] MIT .HÁLÓ
Panini 2014-05-22 MPL 1.1 Saját programozási nyelv
Peernetikus 2007-06-29 LGPL 3.0 Jáva
PostSharp 2014-09-24 Kereskedelmi / Freemium .HÁLÓ
Pulzár 2016. 11. 24. [53] ÚjBSD Piton
Pulzár 2016-02-18 [54] LGPL / Eclipse Clojure
Pykka 2022-05-28 [55] Apache 2.0 Piton
React.Net ? MIT .HÁLÓ
Retlang 2011. 05. 18. [56] ÚjBSD .HÁLÓ
forgórész 2022-05-23 MIT C++17
S4 2012-07-31 [57] Apache 2.0 Jáva
SOobjektizáló 2016-02-11 ÚjBSD C++11
Termesz-séma 2009-05-21 LGPL Rendszer
Theron 2014-01-18 [58] M.I.T. [59] C++
színész 2019-09-11 [60] GoDaddy nyilvános kiadás [61] Piton
QP 2015-09-29 [62] GPL 2.0 és kereskedelmi C és C++
kvazár 2016-01-18 [63] LGPL / Eclipse Jáva

Jegyzetek

  1. Carl Hewitt, Peter Bishop, Richard Steiger: Univerzális moduláris színészi formalizmus a mesterséges intelligencia számára. IJCAI , 1973 
  2. 1 2 3 William Klinger, A színészi szemantika alapjai. MIT PhD matematikából 1981. június Archiválva : 2019. július 25. a Wayback Machine -nél 
  3. [Irene Greif, Kommunikatív párhuzamos folyamatok szemantikája. MIT, PhD, 1975. augusztus  ]
  4. 1 2 G. Aga, I. Mason, S. Smith, C. Talcott. A szereplők számításának okai. Journal of Functional Programming, 1993. január 
  5. G. Baker, C. Hewitt. Az egymásra ható párhuzamos folyamatok törvényei. IFIP, 1977.  augusztus
  6. Carl Hewitt. Mi a kötelezettség? Fizikai, szervezeti és társadalmi. Archiválva : 2021. február 11. a Wayback Machine -nél 
  7. 1 2 Gul Agha, Actors: Model of Parallel Computing in Distributed Systems. MIT Press, PhD, 1986 Archiválva : 2011. június 4. a Wayback Machine -nél 
  8. M. Gaspari, G. Zavattaro. A színészek algebra. Műszaki jelentés UBLCS-97-4. Bolognai Egyetem, 1997
  9. G. Agha, P. Thati. A színészek algebrai elmélete és alkalmazása egy egyszerű objektum alapú nyelvre. (nem elérhető link) . Letöltve: 2011. február 14. Az eredetiből archiválva : 2004. április 20.. 
  10. John Darlington; YK Guo. A szereplők formalizálása a lineáris logikában  (határozatlan) . - Objektum-orientált információs rendszerek nemzetközi konferenciája, 1994.
  11. Carl Hewitt. Vezérlési struktúrák, mint az átadott üzenetek mintáinak megtekintése . Journal of Artificial Intelligence. 1977. június
  12. A SmallTalk Runtime mint modern megvalósítási példa (Pharo Project webhely) . Letöltve: 2018. október 31. Az eredetiből archiválva : 2017. június 7.
  13. P. Hansen. A párhuzamos programozás eredete: a szemaforoktól a távoli eljáráshívásokig. Springer , 2002 
  14. Per Hansen, Monitors and Concurrent Pascal: A Personal History , Comm. ACM 1996, 121-172
  15. Hansen, P., Operating System Principles , Prentice-Hall, 1973. július.
  16. CAR Hoare, Monitorok: Az operációs rendszer felépítésének koncepciója , Comm. ACM Vol. 17. sz. 1974. október 10., pp. 549-557
  17. [McCarthy és Hayes 1969]
  18. 1 2 [Dijkstra 1976]
  19. Frederick Knabe. Elosztott protokoll a csatorna alapú kommunikációhoz a Choice PARLE-vel 1992.
  20. Kleene, 1943
  21. Robin Milner. Folyamatok: A számítástechnikai ágensek matematikai modellje a logikai kollokviumban 1973.
  22. CAR Hoare. Szekvenciális folyamatok kommunikálása 1978. augusztus
  23. [Hoare 1985], [Roscoe 2005]
  24. Hewitt, 2006b, 2007b
  25. Carl Hewitt. Skálázható, megbízható, bizalmas kliensek szervezése felhőalapú számítástechnikához. IEEE Internet Computing, v. 12 (5), 2008  (angol)
  26. Henry Lieberman. 1. felülvizsgálati törvény. MIT AI, 1981. június  (a hivatkozás nem érhető el  )
  27. Henry Lieberman. Sok dologra gondolni egyszerre, zűrzavar nélkül: párhuzamosság az 1. törvényben. MIT AI, 1981. június  (a hivatkozás nem érhető el  )
  28. Jean-Pierre Briot. Acttalk: Keretrendszer az objektum-orientált párhuzamos programozáshoz-tervezéshez és tapasztalatokhoz 2. Franciaország-Japán workshop. 1999.
  29. Ken Kahn. Az animáció számítási elmélete MIT EECS doktori értekezés. 1979. augusztus
  30. William Athas és Nanette Boden Cantor: Színészprogramozási rendszer tudományos számítástechnikához az NSF Workshop az objektum alapú párhuzamos programozásról anyagában. 1988. A SIGPLAN közlemények különkiadása.
  31. Darrell Woelk. InfoSleuth-ügynökök fejlesztése Rozetta használatával: Színészalapú nyelvi előadások a CIKM '95 intelligens információs ügynökökről szóló műhelyéből. 1995.
  32. Dedecker J., Van Cutsem T., Mostinckx S., D'Hondt T., De Meuter W. Ambient-oriented Programming in AmbientTalk. In „Proceedings of the 20th European Conference on Object-Oriented Programming (ECOOP), Dave Thomas (Ed.), Lecture Notes in Computer Science Vol. 4067, pp. 230-254, Springer-Verlag., 2006
  33. A Microsoft új párhuzamos programozási nyelvet készít - Alkalmazásfejlesztés - Hírek és vélemények - eWeek.com
  34. Dave Thomas. 14. fejezet Munka több folyamattal // Programozási Elixir. - Pragmatikus Könyvespolc, 2014. - 280 p. — ISBN 978-1-937785-58-1 .
  35. Carlos Varela és Gul Agha. Dinamikusan újrakonfigurálható nyílt rendszerek programozása SALSA segítségével. ACM SIGPLAN megjegyzések. OOPSLA'2001 Intriguing Technology Track Proceedings, 2001
  36. Philipp Haller és Martin Odersky, Eseményalapú programozás a vezérlés megfordítása nélkül, Proc. JMLC, 2006. szeptember . Letöltve: 2011. február 14. Az eredetiből archiválva : 2020. november 9..
  37. Philipp Haller és Martin Odersky, színészek, akik egyesítik a szálakat és az eseményeket. Műszaki jelentés LAMP, 2007. január (holt link) . Letöltve: 2011. február 14. Az eredetiből archiválva : 2011. június 7.. 
  38. Változások - actor-cpp - A C++ szereplői modelljének megvalósítása - Google Project Hosting . code.google.com. Hozzáférés időpontja: 2016. február 25. Az eredetiből archiválva : 2015. november 18.
  39. Történetek véglegesítése stevedekorte/ActorKit GitHub . Github.com. Letöltve: 2016. február 25.
  40. Actor-framework/actor-framework GitHub címkék . Github.com. Letöltve: 2016. február 25. Az eredetiből archiválva : 2020. november 20.
  41. celluloid | RubyGems.org | a közösségi drágakő házigazdája . rubygems.org. Letöltve: 2016. február 25. Az eredetiből archiválva : 2020. szeptember 29.
  42. Cloud Haskell: Erlang-stílusú párhuzamos és elosztott programozás a Haskellben . Github.com. Letöltve: 2016. február 25. Az eredetiből archiválva : 2016. március 3.
  43. CloudI letöltések . sourceforge.net. Letöltve: 2016. február 25. Az eredetiből archiválva : 2016. március 14.
  44. Funkcionális Java kiadások . GitHub. Letöltve: 2016. február 25.  (nem elérhető link)
  45. GPars kiadások . GitHub. Letöltve: 2016. február 25. Az eredetiből archiválva : 2020. szeptember 4..
  46. jetlang letöltések . code.google.com. Letöltve: 2016. február 25. Az eredetiből archiválva : 2016. március 12..
  47. Srinivasan, Sriram; Alan Mycroft (2008). „Kilim: Isolation-Typed Actors for Java” (PDF) . Európai Konferencia az Objektumorientált Programozásról ECOOP 2008 . Ciprus. Archivált (PDF) az eredetiből ekkor: 2020-10-28 . Letöltve 2016-02-25 . Elavult használt paraméter |deadlink=( súgó )
  48. Előzmények véglegesítése kilim/kilim GitHub . Github.com. Hozzáférés dátuma: 2016. február 25. Az eredetiből archiválva : 2010. április 27.
  49. Közösség: Actor Framework, LV 2011-es változat (3.0.7-es verzió) . decibel.ni.com. Letöltve: 2016. február 25. Az eredetiből archiválva : 2016. október 13..
  50. OOSMOS verzióelőzmények (lefelé hivatkozás) . OOSMOS. Letöltve: 2016. február 25. Az eredetiből archiválva : 2016. március 10. 
  51. Orbit, GitHub, címke 0.7.1 kiadás . GitHub. Letöltve: 2016. február 25.  (nem elérhető link)
  52. Orleans, GitHub, címke 2.3.4 kiadás . GitHub. Letöltve: 2019. június 4. Az eredetiből archiválva : 2020. december 4.
  53. Pulsar kiadási megjegyzések . Letöltve: 2019. január 17. Az eredetiből archiválva : 2019. január 17.
  54. Pulsar a GitHubon . Letöltve: 2016. február 25. Az eredetiből archiválva : 2020. november 17.
  55. Változások - Pykka v3.1.1 . pykka.org. Hozzáférés időpontja: 2022-08-26.
  56. Változások - retlang - Üzenetalapú párhuzamosság a .NET-ben - Google Project Hosting . code.google.com. Hozzáférés időpontja: 2016. február 25. Az eredetiből archiválva : 2015. november 24.
  57. Commit History s4/s4 Apache (downlink) . apache.org. Letöltve: 2016. február 25. Az eredetiből archiválva : 2016. március 6.. 
  58. Theron – Megjelent a 6.00.02-es verzió (lefelé irányuló kapcsolat) . Theron-library.com. Letöltve: 2016. február 25. Az eredetiből archiválva : 2016. március 16.. 
  59. Theron (lefelé irányuló kapcsolat) . Theron-library.com. Hozzáférés időpontja: 2016. február 25. Az eredetiből archiválva : 2016. március 4. 
  60. Thespian kiadástörténet a PyPI-n . Letöltve: 2020. január 27. Az eredetiből archiválva : 2019. május 1.
  61. Thespian Releases . godaddy.com Letöltve: 2015. szeptember 29. Az eredetiből archiválva : 2018. november 30.
  62. QP Active Object Frameworks – Böngésszen a fájlok között itt: . sourceforge.net. Letöltve: 2016. február 25. Az eredetiből archiválva : 2021. február 24..
  63. Quasar GitHub . Letöltve: 2016. február 25. Az eredetiből archiválva : 2020. december 15.

Irodalom