ऐक्टर मॉडल: Difference between revisions

From Vigyanwiki
(Created page with "{{short description|Model of concurrent computation}} {{Programming paradigms}} कंप्यूटर विज्ञान में अभिनेता मॉड...")
 
Line 2: Line 2:
{{Programming paradigms}}
{{Programming paradigms}}


[[कंप्यूटर विज्ञान]] में अभिनेता मॉडल समवर्ती संगणना का एक गणितीय मॉडल है जो एक 'अभिनेता' को समवर्ती संगणना के बुनियादी निर्माण खंड के रूप में मानता है। प्राप्त [[संदेश (कंप्यूटिंग)]] के जवाब में, एक अभिनेता: स्थानीय निर्णय ले सकता है, अधिक अभिनेता बना सकता है, अधिक संदेश भेज सकता है, और यह निर्धारित कर सकता है कि प्राप्त अगले संदेश का जवाब कैसे दिया जाए। अभिनेता अपनी निजी स्थिति को संशोधित कर सकते हैं, लेकिन संदेश के माध्यम से अप्रत्यक्ष रूप से केवल एक दूसरे को प्रभावित कर सकते हैं (लॉक (कंप्यूटर विज्ञान) की आवश्यकता को हटाकर | लॉक-आधारित सिंक्रनाइज़ेशन)।
[[कंप्यूटर विज्ञान]] में ऐक्टर मॉडल समवर्ती संगणना का एक गणितीय मॉडल है जो एक 'ऐक्टर' को समवर्ती संगणना के बुनियादी निर्माण खंड के रूप में मानता है। प्राप्त [[संदेश (कंप्यूटिंग)]] के जवाब में, एक ऐक्टर: स्थानीय निर्णय ले सकता है, अधिक ऐक्टर बना सकता है, अधिक संदेश भेज सकता है, और यह निर्धारित कर सकता है कि प्राप्त अगले संदेश का जवाब कैसे दिया जाए। ऐक्टर अपनी निजी स्थिति को संशोधित कर सकते हैं, लेकिन संदेश के माध्यम से अप्रत्यक्ष रूप से केवल एक दूसरे को प्रभावित कर सकते हैं (लॉक (कंप्यूटर विज्ञान) की आवश्यकता को हटाकर | लॉक-आधारित सिंक्रनाइज़ेशन)।


अभिनेता मॉडल की उत्पत्ति 1973 में हुई थी।<ref>{{cite journal|ref={{harvid|Hewitt et al.|1973}} |last1=Hewitt|first1=Carl|author-link=Carl Hewitt|last2=Bishop|first2=Peter|last3=Steiger|first3=Richard|title=आर्टिफिशियल इंटेलिजेंस के लिए एक सार्वभौमिक मॉड्यूलर अभिनेता औपचारिकता|publisher=IJCAI|year=1973}}</ref> इसका उपयोग संगामिति (कंप्यूटर विज्ञान) के [[अभिनेता मॉडल सिद्धांत]] के ढांचे के रूप में और संगामिति (कंप्यूटर विज्ञान) के कई [[अभिनेता मॉडल कार्यान्वयन]] के लिए सैद्धांतिक आधार के रूप में किया गया है। मॉडल का अन्य कार्य से संबंध [[अभिनेता मॉडल और प्रक्रिया गणना]] में चर्चा की गई है।
ऐक्टर मॉडल की उत्पत्ति 1973 में हुई थी।<ref>{{cite journal|ref={{harvid|Hewitt et al.|1973}} |last1=Hewitt|first1=Carl|author-link=Carl Hewitt|last2=Bishop|first2=Peter|last3=Steiger|first3=Richard|title=आर्टिफिशियल इंटेलिजेंस के लिए एक सार्वभौमिक मॉड्यूलर अभिनेता औपचारिकता|publisher=IJCAI|year=1973}}</ref> इसका उपयोग संगामिति (कंप्यूटर विज्ञान) के [[अभिनेता मॉडल सिद्धांत|ऐक्टर मॉडल सिद्धांत]] के ढांचे के रूप में और संगामिति (कंप्यूटर विज्ञान) के कई [[अभिनेता मॉडल कार्यान्वयन|ऐक्टर मॉडल कार्यान्वयन]] के लिए सैद्धांतिक आधार के रूप में किया गया है। मॉडल का अन्य कार्य से संबंध [[अभिनेता मॉडल और प्रक्रिया गणना|ऐक्टर मॉडल और प्रक्रिया गणना]] में चर्चा की गई है।


== इतिहास ==
== इतिहास ==
{{Main|History of the Actor model}}
{{Main|History of the Actor model}}
[[कार्ल हेविट]] के अनुसार, संगणना के पिछले मॉडलों के विपरीत, अभिनेता मॉडल [[सामान्य सापेक्षता]] और [[क्वांटम यांत्रिकी]] सहित भौतिकी से प्रेरित था।{{Citation needed|date=March 2018}} यह प्रोग्रामिंग लैंग्वेज [[ लिस्प (प्रोग्रामिंग भाषा) ]], सिमुला, स्मॉलटाक के [[शुरुआत]]ी संस्करणों, [[क्षमता-आधारित सुरक्षा]] | क्षमता-आधारित सिस्टम और [[ पैकेट बदली ]] से भी प्रभावित था। इसका विकास अत्यधिक समानांतर कंप्यूटिंग मशीनों की संभावना से प्रेरित था जिसमें दर्जनों, सैकड़ों, या यहां तक ​​कि हजारों स्वतंत्र माइक्रोप्रोसेसर शामिल थे, जिनमें से प्रत्येक की अपनी स्थानीय मेमोरी और संचार प्रोसेसर था, जो एक उच्च-प्रदर्शन संचार नेटवर्क के माध्यम से संचार करता था।<ref name="clinger1981">{{cite journal|author=William Clinger|author-link=William Clinger (computer scientist)|title=अभिनेता शब्दार्थ की नींव|publisher=MIT|version=Mathematics Doctoral Dissertation|date=June 1981|hdl=1721.1/6935}}</ref> उस समय से, [[मल्टी-कोर (कंप्यूटिंग)]] | मल्टी-कोर और [[ mycore ]] कंप्यूटर आर्किटेक्चर के माध्यम से बड़े पैमाने पर संगामिति के आगमन ने अभिनेता मॉडल में रुचि को पुनर्जीवित किया है।
[[कार्ल हेविट]] के अनुसार, संगणना के पिछले मॉडलों के विपरीत, ऐक्टर मॉडल [[सामान्य सापेक्षता]] और [[क्वांटम यांत्रिकी]] सहित भौतिकी से प्रेरित था।{{Citation needed|date=March 2018}} यह प्रोग्रामिंग लैंग्वेज [[ लिस्प (प्रोग्रामिंग भाषा) ]], सिमुला, स्मॉलटाक के [[शुरुआत]]ी संस्करणों, [[क्षमता-आधारित सुरक्षा]] | क्षमता-आधारित सिस्टम और [[ पैकेट बदली ]] से भी प्रभावित था। इसका विकास अत्यधिक समानांतर कंप्यूटिंग मशीनों की संभावना से प्रेरित था जिसमें दर्जनों, सैकड़ों, या यहां तक ​​कि हजारों स्वतंत्र माइक्रोप्रोसेसर सम्मिलित थे, जिनमें से प्रत्येक की अपनी स्थानीय मेमोरी और संचार प्रोसेसर था, जो एक उच्च-प्रदर्शन संचार नेटवर्क के माध्यम से संचार करता था।<ref name="clinger1981">{{cite journal|author=William Clinger|author-link=William Clinger (computer scientist)|title=अभिनेता शब्दार्थ की नींव|publisher=MIT|version=Mathematics Doctoral Dissertation|date=June 1981|hdl=1721.1/6935}}</ref> उस समय से, [[मल्टी-कोर (कंप्यूटिंग)]] | मल्टी-कोर और [[ mycore ]] कंप्यूटर आर्किटेक्चर के माध्यम से बड़े पैमाने पर संगामिति के आगमन ने ऐक्टर मॉडल में रुचि को पुनर्जीवित किया है।


हेविट, बिशप और स्टीगर के 1973 के प्रकाशन के बाद, [[आइरीन ग्रीफ]] ने अपने डॉक्टरेट अनुसंधान के हिस्से के रूप में अभिनेता मॉडल के लिए एक [[परिचालन शब्दार्थ]] विकसित किया।<ref name="greif1975">{{cite journal|author=Irene Greif|author-link=Irene Greif|title=समानांतर प्रक्रियाओं का संचार करने का शब्दार्थ|publisher=MIT|version=EECS Doctoral Dissertation|date=August 1975}}</ref> दो साल बाद, [[हेनरी बेकर (कंप्यूटर वैज्ञानिक)]] और हेविट ने अभिनेता प्रणालियों के लिए स्वयंसिद्ध कानूनों का एक सेट प्रकाशित किया।<ref name="baker1977">{{cite journal|author=Henry Baker|author-link=Henry Baker (computer scientist)|author2=Carl Hewitt|title=समानांतर प्रक्रियाओं के संचार के लिए कानून|publisher=IFIP|date=August 1977|author-link2=Carl Hewitt}}</ref><ref>{{cite web|url=http://dspace.mit.edu/bitstream/handle/1721.1/41962/AI_WP_134A.pdf|title=समानांतर प्रक्रियाओं के संचार के लिए कानून|date=10 May 1977|access-date=11 June 2014|archive-date=24 June 2016|archive-url=https://web.archive.org/web/20160624000258/http://dspace.mit.edu/bitstream/handle/1721.1/41962/AI_WP_134A.pdf|url-status=live}}</ref> अन्य प्रमुख मील के पत्थर में विलियम क्लिंजर (कंप्यूटर वैज्ञानिक) शामिल हैं। विलियम क्लिंजर का 1981 का शोध प्रबंध [[शक्ति डोमेन]] पर आधारित अभिनेता मॉडल के एक सांकेतिक शब्दार्थ को प्रस्तुत करता है।<ref name="clinger1981" />और [[गुल आगा (कंप्यूटर वैज्ञानिक)]] का 1985 का शोध प्रबंध जिसने क्लिंगर्स के पूरक के लिए एक संक्रमण-आधारित सिमेंटिक मॉडल विकसित किया।<ref name="agha1986">{{cite journal|author=Gul Agha|title=Actors: A Model of Concurrent Computation in Distributed Systems|version= Doctoral Dissertation|publisher=MIT Press|year=1986|hdl=1721.1/6952}}</ref> इसके परिणामस्वरूप अभिनेता मॉडल सिद्धांत का पूर्ण विकास हुआ।
हेविट, बिशप और स्टीगर के 1973 के प्रकाशन के बाद, [[आइरीन ग्रीफ]] ने अपने डॉक्टरेट अनुसंधान के हिस्से के रूप में ऐक्टर मॉडल के लिए एक [[परिचालन शब्दार्थ]] विकसित किया।<ref name="greif1975">{{cite journal|author=Irene Greif|author-link=Irene Greif|title=समानांतर प्रक्रियाओं का संचार करने का शब्दार्थ|publisher=MIT|version=EECS Doctoral Dissertation|date=August 1975}}</ref> दो साल बाद, [[हेनरी बेकर (कंप्यूटर वैज्ञानिक)]] और हेविट ने ऐक्टर प्रणालियों के लिए स्वयंसिद्ध कानूनों का एक सेट प्रकाशित किया।<ref name="baker1977">{{cite journal|author=Henry Baker|author-link=Henry Baker (computer scientist)|author2=Carl Hewitt|title=समानांतर प्रक्रियाओं के संचार के लिए कानून|publisher=IFIP|date=August 1977|author-link2=Carl Hewitt}}</ref><ref>{{cite web|url=http://dspace.mit.edu/bitstream/handle/1721.1/41962/AI_WP_134A.pdf|title=समानांतर प्रक्रियाओं के संचार के लिए कानून|date=10 May 1977|access-date=11 June 2014|archive-date=24 June 2016|archive-url=https://web.archive.org/web/20160624000258/http://dspace.mit.edu/bitstream/handle/1721.1/41962/AI_WP_134A.pdf|url-status=live}}</ref> अन्य प्रमुख मील के पत्थर में विलियम क्लिंजर (कंप्यूटर वैज्ञानिक) सम्मिलित हैं। विलियम क्लिंजर का 1981 का शोध प्रबंध [[शक्ति डोमेन]] पर आधारित ऐक्टर मॉडल के एक सांकेतिक शब्दार्थ को प्रस्तुत करता है।<ref name="clinger1981" />और [[गुल आगा (कंप्यूटर वैज्ञानिक)]] का 1985 का शोध प्रबंध जिसने क्लिंगर्स के पूरक के लिए एक संक्रमण-आधारित सिमेंटिक मॉडल विकसित किया।<ref name="agha1986">{{cite journal|author=Gul Agha|title=Actors: A Model of Concurrent Computation in Distributed Systems|version= Doctoral Dissertation|publisher=MIT Press|year=1986|hdl=1721.1/6952}}</ref> इसके परिणामस्वरूप ऐक्टर मॉडल सिद्धांत का पूर्ण विकास हुआ।


रस एटकिन्सन, ग्यूसेप अटारडी, हेनरी बेकर, गेरी बार्बर, पीटर बिशप, पीटर डी जोंग, केन कान, हेनरी लिबरमैन, कार्ल मैनिंग, टॉम रेनहार्ड्ट, रिचर्ड स्टीगर और डैन थेरियॉल्ट द्वारा मेसेज पासिंग सिमेंटिक्स ग्रुप में प्रमुख सॉफ्टवेयर कार्यान्वयन कार्य किया गया था। [[मैसाचुसेट्स की तकनीकी संस्था]] (एमआईटी)। [[कैलिफोर्निया प्रौद्योगिकी संस्थान]] (कैल्टेक) में चक सेइट्ज और एमआईटी में [[बिल डेली]] के नेतृत्व में अनुसंधान समूहों ने कंप्यूटर आर्किटेक्चर का निर्माण किया जिसने मॉडल में पारित होने वाले संदेश को और विकसित किया। अभिनेता मॉडल कार्यान्वयन देखें।
रस एटकिन्सन, ग्यूसेप अटारडी, हेनरी बेकर, गेरी बार्बर, पीटर बिशप, पीटर डी जोंग, केन कान, हेनरी लिबरमैन, कार्ल मैनिंग, टॉम रेनहार्ड्ट, रिचर्ड स्टीगर और डैन थेरियॉल्ट द्वारा मेसेज पासिंग सिमेंटिक्स ग्रुप में प्रमुख सॉफ्टवेयर कार्यान्वयन कार्य किया गया था। [[मैसाचुसेट्स की तकनीकी संस्था]] (एमआईटी)। [[कैलिफोर्निया प्रौद्योगिकी संस्थान]] (कैल्टेक) में चक सेइट्ज और एमआईटी में [[बिल डेली]] के नेतृत्व में अनुसंधान समूहों ने कंप्यूटर आर्किटेक्चर का निर्माण किया जिसने मॉडल में पारित होने वाले संदेश को और विकसित किया। ऐक्टर मॉडल कार्यान्वयन देखें।


कैलिफोर्निया इंस्टीट्यूट ऑफ टेक्नोलॉजी, [[ क्योटो विश्वविद्यालय ]] टोकोरो लेबोरेटरी, [[माइक्रोइलेक्ट्रॉनिक और कंप्यूटर प्रौद्योगिकी निगम]] (MCC), [[एमआईटी आर्टिफिशियल इंटेलिजेंस प्रयोगशाला]], [[श्री इंटरनेशनल]], [[ स्टैनफोर्ड विश्वविद्यालय ]], इलिनोइस विश्वविद्यालय, उरबाना-शैंपेन में अभिनेता मॉडल पर शोध किया गया है।<ref>{{cite web|url=http://osl.cs.uiuc.edu |title=घर|publisher=Osl.cs.uiuc.edu |access-date=2012-12-02 |url-status=dead |archive-url=https://web.archive.org/web/20130222175604/http://osl.cs.uiuc.edu/ |archive-date=2013-02-22}}</ref> [[पियरे और मैरी क्यूरी विश्वविद्यालय]] (यूनिवर्सिटी ऑफ पेरिस 6), [[पीसा विश्वविद्यालय]], [[टोक्यो विश्वविद्यालय]] योनेजावा लेबोरेटरी, सेंट्रम विस्कुंडे एंड इंफॉर्मेटिका (सीडब्ल्यूआई) और अन्य जगहों पर।
कैलिफोर्निया इंस्टीट्यूट ऑफ टेक्नोलॉजी, [[ क्योटो विश्वविद्यालय ]] टोकोरो लेबोरेटरी, [[माइक्रोइलेक्ट्रॉनिक और कंप्यूटर प्रौद्योगिकी निगम]] (MCC), [[एमआईटी आर्टिफिशियल इंटेलिजेंस प्रयोगशाला]], [[श्री इंटरनेशनल]], [[ स्टैनफोर्ड विश्वविद्यालय ]], इलिनोइस विश्वविद्यालय, उरबाना-शैंपेन में ऐक्टर मॉडल पर शोध किया गया है।<ref>{{cite web|url=http://osl.cs.uiuc.edu |title=घर|publisher=Osl.cs.uiuc.edu |access-date=2012-12-02 |url-status=dead |archive-url=https://web.archive.org/web/20130222175604/http://osl.cs.uiuc.edu/ |archive-date=2013-02-22}}</ref> [[पियरे और मैरी क्यूरी विश्वविद्यालय]] (यूनिवर्सिटी ऑफ पेरिस 6), [[पीसा विश्वविद्यालय]], [[टोक्यो विश्वविद्यालय]] योनेजावा लेबोरेटरी, सेंट्रम विस्कुंडे एंड इंफॉर्मेटिका (सीडब्ल्यूआई) और अन्य जगहों पर।


== मौलिक अवधारणाएँ ==
== मौलिक अवधारणाएँ ==
अभिनेता मॉडल इस दर्शन को अपनाता है कि सब कुछ एक अभिनेता है। यह सब कुछ एक वस्तु दर्शन के समान है जिसका उपयोग कुछ वस्तु-उन्मुख प्रोग्रामिंग भाषाओं द्वारा किया जाता है।
ऐक्टर मॉडल इस दर्शन को अपनाता है कि सब कुछ एक ऐक्टर है। यह सब कुछ एक वस्तु दर्शन के समान है जिसका उपयोग कुछ वस्तु-उन्मुख प्रोग्रामिंग भाषाओं द्वारा किया जाता है।


एक अभिनेता एक कम्प्यूटेशनल इकाई है, जो इसे प्राप्त संदेश के जवाब में समवर्ती रूप से कर सकता है:
एक ऐक्टर एक कम्प्यूटेशनल इकाई है, जो इसे प्राप्त संदेश के जवाब में समवर्ती रूप से कर सकता है:
* अन्य अभिनेताओं को सीमित संख्या में संदेश भेजें;
* अन्य अभिनेताओं को सीमित संख्या में संदेश भेजें;
* नए अभिनेताओं की एक सीमित संख्या बनाएँ;
* नए अभिनेताओं की एक सीमित संख्या बनाएँ;
Line 26: Line 26:
उपरोक्त क्रियाओं का कोई अनुमानित क्रम नहीं है और उन्हें समानांतर में किया जा सकता है।
उपरोक्त क्रियाओं का कोई अनुमानित क्रम नहीं है और उन्हें समानांतर में किया जा सकता है।


भेजे गए संचार से प्रेषक को अलग करना अभिनेता मॉडल का मौलिक अग्रिम था जो [[अतुल्यकालिक संचार]] और नियंत्रण संरचनाओं को संदेश भेजने के पैटर्न के रूप में सक्षम बनाता था।<ref>Carl Hewitt. ''[https://web.archive.org/web/20170924160220/http://www.dtic.mil/get-tr-doc/pdf?AD=ADA038246 Viewing Control Structures as Patterns of Passing Messages]'' Journal of Artificial Intelligence. June 1977.</ref>
भेजे गए संचार से प्रेषक को अलग करना ऐक्टर मॉडल का मौलिक अग्रिम था जो [[अतुल्यकालिक संचार]] और नियंत्रण संरचनाओं को संदेश भेजने के पैटर्न के रूप में सक्षम बनाता था।<ref>Carl Hewitt. ''[https://web.archive.org/web/20170924160220/http://www.dtic.mil/get-tr-doc/pdf?AD=ADA038246 Viewing Control Structures as Patterns of Passing Messages]'' Journal of Artificial Intelligence. June 1977.</ref>
संदेशों के प्राप्तकर्ता पते से पहचाने जाते हैं, जिसे कभी-कभी डाक पता कहा जाता है। इस प्रकार एक अभिनेता केवल उन अभिनेताओं के साथ संवाद कर सकता है जिनके पते उसके पास हैं। यह उन्हें प्राप्त होने वाले संदेश से प्राप्त कर सकता है, या यदि पता किसी अभिनेता के लिए है जिसे उसने स्वयं बनाया है।
संदेशों के प्राप्तकर्ता एड्रैस से पहचाने जाते हैं, जिसे कभी-कभी डाक पता कहा जाता है। इस प्रकार एक ऐक्टर केवल उन अभिनेताओं के साथ संवाद कर सकता है जिनके एड्रैस उसके पास हैं। यह उन्हें प्राप्त होने वाले संदेश से प्राप्त कर सकता है, या यदि पता किसी ऐक्टर के लिए है जिसे उसने स्वयं बनाया है।


अभिनेता मॉडल को अभिनेताओं के भीतर और अभिनेताओं के बीच अभिकलन की अंतर्निहित समरूपता, अभिनेताओं के गतिशील निर्माण, संदेशों में अभिनेता के पते को शामिल करने और केवल सीधे अतुल्यकालिक संदेश के माध्यम से संदेश आगमन आदेश पर कोई प्रतिबंध नहीं होने की विशेषता है।
ऐक्टर मॉडल को अभिनेताओं के भीतर और अभिनेताओं के बीच अभिकलन की अंतर्निहित समरूपता, अभिनेताओं के गतिशील निर्माण, संदेशों में ऐक्टर के एड्रैस को सम्मिलित करने और केवल सीधे अतुल्यकालिक संदेश के माध्यम से संदेश आगमन आदेश पर कोई प्रतिबंध नहीं होने की विशेषता है।


== औपचारिक प्रणाली ==
== औपचारिक प्रणाली ==
इन वर्षों में, कई अलग-अलग औपचारिक प्रणालियाँ विकसित की गई हैं जो अभिनेता मॉडल में प्रणालियों के बारे में तर्क करने की अनुमति देती हैं। इसमे शामिल है:
इन वर्षों में, कई अलग-अलग औपचारिक प्रणालियाँ विकसित की गई हैं जो ऐक्टर मॉडल में प्रणालियों के बारे में तर्क करने की अनुमति देती हैं। इसमे सम्मिलित है:


* परिचालन शब्दार्थ<ref name="greif1975"/><ref name="agha1993">{{cite journal|author=Gul Agha|author2=Ian Mason|author3=Scott Smith|author4=Carolyn Talcott|title=अभिनेता संगणना के लिए एक फाउंडेशन|journal=Journal of Functional Programming|date=January 1993}}</ref>
* परिचालन शब्दार्थ<ref name="greif1975"/><ref name="agha1993">{{cite journal|author=Gul Agha|author2=Ian Mason|author3=Scott Smith|author4=Carolyn Talcott|title=अभिनेता संगणना के लिए एक फाउंडेशन|journal=Journal of Functional Programming|date=January 1993}}</ref>
* अभिनेता प्रणालियों के लिए कानून<ref name="baker1977"/>* [[सांकेतिक शब्दार्थ]]<ref name="clinger1981"/><ref name="hewitt2006">{{cite journal|author=Carl Hewitt|author-link=Carl Hewitt|url=http://www.pcs.usp.br/~coin-aamas06/10_commitment-43_16pages.pdf|title=What is Commitment? Physical, Organizational, and Social|date=2006-04-27|access-date=2006-05-26|archive-date=2021-02-11|archive-url=https://web.archive.org/web/20210211011938/http://www2.pcs.usp.br/~coin-aamas06/10_commitment-43_16pages.pdf|url-status=live}}</ref>
* ऐक्टर प्रणालियों के लिए कानून<ref name="baker1977"/>* [[सांकेतिक शब्दार्थ]]<ref name="clinger1981"/><ref name="hewitt2006">{{cite journal|author=Carl Hewitt|author-link=Carl Hewitt|url=http://www.pcs.usp.br/~coin-aamas06/10_commitment-43_16pages.pdf|title=What is Commitment? Physical, Organizational, and Social|date=2006-04-27|access-date=2006-05-26|archive-date=2021-02-11|archive-url=https://web.archive.org/web/20210211011938/http://www2.pcs.usp.br/~coin-aamas06/10_commitment-43_16pages.pdf|url-status=live}}</ref>
* संक्रमण शब्दार्थ<ref name="agha1986"/>
* संक्रमण शब्दार्थ<ref name="agha1986"/>


ऐसी औपचारिकताएं भी हैं जो अभिनेता मॉडल के लिए पूरी तरह से वफादार नहीं हैं, जिसमें वे निम्नलिखित सहित संदेशों की गारंटीकृत डिलीवरी को औपचारिक रूप नहीं देते हैं (देखें अभिनेता मॉडल बाद में इतिहास#अभिनेता शब्दार्थ को बीजगणित और रैखिक तर्क से संबंधित करने का प्रयास):
ऐसी औपचारिकताएं भी हैं जो ऐक्टर मॉडल के लिए पूरी तरह से वफादार नहीं हैं, जिसमें वे निम्नलिखित सहित संदेशों की गारंटीकृत डिलीवरी को औपचारिक रूप नहीं देते हैं (देखें ऐक्टर मॉडल बाद में इतिहास#ऐक्टर शब्दार्थ को बीजगणित और रैखिक तर्क से संबंधित करने का प्रयास):
* कई अलग अभिनेता बीजगणित<ref name="gaspari1997">{{cite book|author=Mauro Gaspari|title=ओपन ऑब्जेक्ट-आधारित वितरित सिस्टम के लिए औपचारिक तरीके|pages=3–18|author2=Gianluigi Zavattaro|chapter=An Algebra of Actors|version=Technical Report UBLCS-97-4|publisher=University of Bologna|date=May 1997|chapter-url=https://link.springer.com/content/pdf/10.1007/978-0-387-35562-7_2.pdf|doi=10.1007/978-0-387-35562-7_2|isbn=978-1-4757-5266-3|access-date=2019-04-08|archive-date=2018-07-26|archive-url=https://web.archive.org/web/20180726193514/https://link.springer.com/content/pdf/10.1007%2F978-0-387-35562-7_2.pdf|url-status=live}}</ref><ref name="gaspari1999">{{cite journal|author= M. Gaspari|author2=G. Zavattaro|title=अभिनेताओं का एक बीजगणित|publisher=Formal Methods for Open Object Based Systems |year=1999}}</ref><ref name="agha2004">{{cite journal|author=Gul Agha|author-link=Gul Agha (computer scientist)|author2=Prasanna Thati|url=http://formal.cs.uiuc.edu/papers/ATactors_festschrift.pdf|archive-url=https://web.archive.org/web/20040420064252/http://formal.cs.uiuc.edu/papers/ATactors_festschrift.pdf|url-status=dead|archive-date=2004-04-20|title=अभिनेताओं का एक बीजगणितीय सिद्धांत और एक साधारण वस्तु-आधारित भाषा में इसका अनुप्रयोग|publisher=From OO to FM (Dahl Festschrift) LNCS 2635|year=2004}}</ref>
* कई अलग ऐक्टर बीजगणित<ref name="gaspari1997">{{cite book|author=Mauro Gaspari|title=ओपन ऑब्जेक्ट-आधारित वितरित सिस्टम के लिए औपचारिक तरीके|pages=3–18|author2=Gianluigi Zavattaro|chapter=An Algebra of Actors|version=Technical Report UBLCS-97-4|publisher=University of Bologna|date=May 1997|chapter-url=https://link.springer.com/content/pdf/10.1007/978-0-387-35562-7_2.pdf|doi=10.1007/978-0-387-35562-7_2|isbn=978-1-4757-5266-3|access-date=2019-04-08|archive-date=2018-07-26|archive-url=https://web.archive.org/web/20180726193514/https://link.springer.com/content/pdf/10.1007%2F978-0-387-35562-7_2.pdf|url-status=live}}</ref><ref name="gaspari1999">{{cite journal|author= M. Gaspari|author2=G. Zavattaro|title=अभिनेताओं का एक बीजगणित|publisher=Formal Methods for Open Object Based Systems |year=1999}}</ref><ref name="agha2004">{{cite journal|author=Gul Agha|author-link=Gul Agha (computer scientist)|author2=Prasanna Thati|url=http://formal.cs.uiuc.edu/papers/ATactors_festschrift.pdf|archive-url=https://web.archive.org/web/20040420064252/http://formal.cs.uiuc.edu/papers/ATactors_festschrift.pdf|url-status=dead|archive-date=2004-04-20|title=अभिनेताओं का एक बीजगणितीय सिद्धांत और एक साधारण वस्तु-आधारित भाषा में इसका अनुप्रयोग|publisher=From OO to FM (Dahl Festschrift) LNCS 2635|year=2004}}</ref>
* [[रैखिक तर्क]]<ref name="darlington1994">{{cite journal|author=John Darlington|author2=Y. K. Guo|title=रैखिक तर्क में अभिनेताओं को औपचारिक बनाना|publisher=International Conference on Object-Oriented Information Systems|year=1994}}</ref>
* [[रैखिक तर्क]]<ref name="darlington1994">{{cite journal|author=John Darlington|author2=Y. K. Guo|title=रैखिक तर्क में अभिनेताओं को औपचारिक बनाना|publisher=International Conference on Object-Oriented Information Systems|year=1994}}</ref>




== अनुप्रयोग ==
== अनुप्रयोग ==
अभिनेता मॉडल का उपयोग समवर्ती प्रणालियों की एक विस्तृत श्रृंखला के बारे में मॉडलिंग, समझ और तर्क के लिए एक रूपरेखा के रूप में किया जा सकता है।<ref>{{Cite web|title=What is the Actor Model & When Should You Use it?|url=https://mattferderer.com/|access-date=2021-08-25|website=Matt Ferderer|language=en|archive-date=2021-08-25|archive-url=https://web.archive.org/web/20210825180156/https://mattferderer.com/|url-status=live}}</ref> उदाहरण के लिए:
ऐक्टर मॉडल का उपयोग समवर्ती प्रणालियों की एक विस्तृत श्रृंखला के बारे में मॉडलिंग, समझ और तर्क के लिए एक रूपरेखा के रूप में किया जा सकता है।<ref>{{Cite web|title=What is the Actor Model & When Should You Use it?|url=https://mattferderer.com/|access-date=2021-08-25|website=Matt Ferderer|language=en|archive-date=2021-08-25|archive-url=https://web.archive.org/web/20210825180156/https://mattferderer.com/|url-status=live}}</ref> उदाहरण के लिए:


* इलेक्ट्रॉनिक मेल ([[ईमेल]]) को एक अभिनेता प्रणाली के रूप में तैयार किया जा सकता है। खातों को अभिनेताओं के रूप में और ईमेल पतों को अभिनेता के पतों के रूप में तैयार किया जाता है।
* इलेक्ट्रॉनिक मेल ([[ईमेल]]) को एक ऐक्टर प्रणाली के रूप में तैयार किया जा सकता है। खातों को अभिनेताओं के रूप में और ईमेल एड्रैस को ऐक्टर के एड्रैस के रूप में तैयार किया जाता है।
* [[वेब सेवा]]ओं को सिंपल ऑब्जेक्ट एक्सेस प्रोटोकॉल ([[SOAP]]) एंडपॉइंट्स के साथ अभिनेता के पते के रूप में तैयार किया जा सकता है।
* [[वेब सेवा]]ओं को सिंपल ऑब्जेक्ट एक्सेस प्रोटोकॉल ([[SOAP]]) एंडपॉइंट्स के साथ ऐक्टर के एड्रैस के रूप में तैयार किया जा सकता है।
* ऑब्जेक्ट्स लॉक (कंप्यूटर साइंस) के साथ (उदाहरण के लिए, [[ जावा (प्रोग्रामिंग भाषा) ]] और सी शार्प (प्रोग्रामिंग लैंग्वेज) | सी #) में सीरिअलाइज़र के रूप में मॉडल किया जा सकता है, बशर्ते कि उनका कार्यान्वयन ऐसा हो कि संदेश लगातार आ सकें (शायद द्वारा) एक आंतरिक [[कतार (सार डेटा प्रकार)]] में संग्रहीत किया जा रहा है)। एक धारावाहिक एक महत्वपूर्ण प्रकार का अभिनेता है जो संपत्ति द्वारा परिभाषित किया गया है कि यह नए संदेशों के आगमन के लिए लगातार उपलब्ध है; धारावाहिक को भेजे गए प्रत्येक संदेश के आने की गारंटी है।<ref>{{Cite web|last=Cheung|first=Leo|date=2017-07-25|title=अक्का और अभिनेता मॉडल IoT अनुप्रयोगों के लिए क्यों चमकते हैं|url=https://www.infoworld.com/article/3209728/why-akka-and-the-actor-model-shine-for-iot-applications.html|access-date=2021-08-25|website=InfoWorld|language=en|archive-date=2021-08-25|archive-url=https://web.archive.org/web/20210825181648/https://www.infoworld.com/article/3209728/why-akka-and-the-actor-model-shine-for-iot-applications.html|url-status=live}}</ref>
* ऑब्जेक्ट्स लॉक (कंप्यूटर साइंस) के साथ (उदाहरण के लिए, [[ जावा (प्रोग्रामिंग भाषा) ]] और सी शार्प (प्रोग्रामिंग लैंग्वेज) | सी #) में सीरिअलाइज़र के रूप में मॉडल किया जा सकता है, बशर्ते कि उनका कार्यान्वयन ऐसा हो कि संदेश लगातार आ सकें (शायद द्वारा) एक आंतरिक [[कतार (सार डेटा प्रकार)]] में संग्रहीत किया जा रहा है)। एक धारावाहिक एक महत्वपूर्ण प्रकार का ऐक्टर है जो संपत्ति द्वारा परिभाषित किया गया है कि यह नए संदेशों के आगमन के लिए लगातार उपलब्ध है; धारावाहिक को भेजे गए प्रत्येक संदेश के आने की गारंटी है।<ref>{{Cite web|last=Cheung|first=Leo|date=2017-07-25|title=अक्का और अभिनेता मॉडल IoT अनुप्रयोगों के लिए क्यों चमकते हैं|url=https://www.infoworld.com/article/3209728/why-akka-and-the-actor-model-shine-for-iot-applications.html|access-date=2021-08-25|website=InfoWorld|language=en|archive-date=2021-08-25|archive-url=https://web.archive.org/web/20210825181648/https://www.infoworld.com/article/3209728/why-akka-and-the-actor-model-shine-for-iot-applications.html|url-status=live}}</ref>
* परीक्षण और परीक्षण नियंत्रण संकेतन ([[TTCN]]), दोनों TTCN-2 और [[TTCN-3]], अभिनेता मॉडल का काफी बारीकी से अनुसरण करते हैं। TTCN में अभिनेता एक परीक्षण घटक है: या तो समानांतर परीक्षण घटक (PTC) या मुख्य परीक्षण घटक (MTC)। परीक्षण घटक दूरस्थ भागीदारों (सहकर्मी परीक्षण घटक या परीक्षण प्रणाली इंटरफ़ेस) को संदेश भेज और प्राप्त कर सकते हैं, बाद वाले को इसके पते से पहचाना जा सकता है। प्रत्येक परीक्षण घटक के पास एक व्यवहार वृक्ष होता है जो उससे जुड़ा होता है; परीक्षण घटक समानांतर में चलते हैं और मूल परीक्षण घटकों द्वारा गतिशील रूप से बनाए जा सकते हैं। अंतर्निहित भाषा संरचना आंतरिक संदेश कतार से अपेक्षित संदेश प्राप्त होने पर क्रियाओं की परिभाषा लेने की अनुमति देती है, जैसे किसी अन्य सहकर्मी इकाई को संदेश भेजना या नए परीक्षण घटक बनाना।
* परीक्षण और परीक्षण नियंत्रण संकेतन ([[TTCN]]), दोनों TTCN-2 और [[TTCN-3]], ऐक्टर मॉडल का काफी बारीकी से अनुसरण करते हैं। TTCN में ऐक्टर एक परीक्षण घटक है: या तो समानांतर परीक्षण घटक (PTC) या मुख्य परीक्षण घटक (MTC)। परीक्षण घटक दूरस्थ भागीदारों (सहकर्मी परीक्षण घटक या परीक्षण प्रणाली इंटरफ़ेस) को संदेश भेज और प्राप्त कर सकते हैं, बाद वाले को इसके एड्रैस से पहचाना जा सकता है। प्रत्येक परीक्षण घटक के पास एक व्यवहार वृक्ष होता है जो उससे जुड़ा होता है; परीक्षण घटक समानांतर में चलते हैं और मूल परीक्षण घटकों द्वारा गतिशील रूप से बनाए जा सकते हैं। अंतर्निहित भाषा संरचना आंतरिक संदेश कतार से अपेक्षित संदेश प्राप्त होने पर क्रियाओं की परिभाषा लेने की अनुमति देती है, जैसे किसी अन्य सहकर्मी इकाई को संदेश भेजना या नए परीक्षण घटक बनाना।


== संदेश-गुजरने वाले शब्दार्थ ==
== संदेश-गुजरने वाले शब्दार्थ ==
अभिनेता मॉडल संदेश पारित करने के शब्दार्थ के बारे में है।
ऐक्टर मॉडल संदेश पारित करने के शब्दार्थ के बारे में है।


=== असंबद्ध nondeterminism विवाद ===
=== असंबद्ध nondeterminism विवाद ===
यकीनन, पहले समवर्ती कार्यक्रम [[इंटरप्ट हैंडलर]] थे। अपने सामान्य संचालन के दौरान एक कंप्यूटर को बाहर से जानकारी प्राप्त करने में सक्षम होना चाहिए (कीबोर्ड से वर्ण, नेटवर्क से पैकेट इत्यादि)। इसलिए जब सूचना पहुंची तो कंप्यूटर का निष्पादन बाधित हो गया और सूचना को [[डेटा बफर]] में रखने के लिए विशेष कोड (इंटरप्ट हैंडलर कहा जाता है) को बुलाया गया जहां इसे बाद में पुनर्प्राप्त किया जा सके।
यकीनन, पहले समवर्ती कार्यक्रम [[इंटरप्ट हैंडलर]] थे। अपने सामान्य संचालन के समय एक कंप्यूटर को बाहर से जानकारी प्राप्त करने में सक्षम होना चाहिए (कीबोर्ड से वर्ण, नेटवर्क से पैकेट इत्यादि)। इसलिए जब सूचना पहुंची तो कंप्यूटर का निष्पादन बाधित हो गया और सूचना को [[डेटा बफर]] में रखने के लिए विशेष कोड (इंटरप्ट हैंडलर कहा जाता है) को बुलाया गया जहां इसे बाद में पुनर्प्राप्त किया जा सके।


1960 के दशक की शुरुआत में, एक प्रोसेसर पर कई कार्यक्रमों के समवर्ती निष्पादन को अनुकरण करने के लिए इंटरप्ट्स का उपयोग किया जाने लगा।<ref>{{cite book |last=Hansen |first=Per Brinch |author-link=Per Brinch Hansen |title=The Origins of Concurrent Programming: From Semaphores to Remote Procedure Calls |isbn=978-0-387-95401-1 |publisher=Springer |year=2002}}</ref> साझा स्मृति के साथ समवर्ती होने से समवर्ती नियंत्रण की समस्या उत्पन्न हुई। मूल रूप से, इस समस्या की कल्पना एक ही कंप्यूटर पर परस्पर बहिष्करण के रूप में की गई थी। [[Edsger Dijkstra]] ने [[सेमाफोर (प्रोग्रामिंग)]] विकसित किया और बाद में, 1971 और 1973 के बीच,<ref>{{cite journal |last=Hansen |first=Per Brinch |author-link=Per Brinch Hansen |date=1996 |title=Monitors and Concurrent Pascal: A Personal History |journal=Communications of the ACM |pages=121–172}}</ref> [[टोनी होरे]]<ref>{{cite journal |last=Hoare |first=Tony |author-link=Tony Hoare |date=October 1974 |title=Monitors: An Operating System Structuring Concept |journal=Communications of the ACM |volume=17 |issue=10 |pages=549–557|doi=10.1145/355620.361161 |s2cid=1005769 }}</ref> और [[प्रति ब्रिन्च हैनसेन]]<ref>{{cite book |last=Hansen |first=Per Brinch |author-link=Per Brinch Hansen |date=July 1973 |title=ऑपरेटिंग सिस्टम सिद्धांत|publisher=Prentice-Hall}}</ref> पारस्परिक बहिष्करण समस्या को हल करने के लिए विकसित [[मॉनिटर (सिंक्रनाइज़ेशन)]]। हालाँकि, इनमें से किसी भी समाधान ने प्रोग्रामिंग भाषा निर्माण प्रदान नहीं किया है जो साझा संसाधनों तक पहुंच को समाहित करता है। इस एनकैप्सुलेशन को बाद में [[क्रमबद्धता]] कंस्ट्रक्शन ([हेविट और एटकिंसन 1977, 1979] और [एटकिंसन 1980]) द्वारा पूरा किया गया था।
1960 के दशक की शुरुआत में, एक प्रोसेसर पर कई कार्यक्रमों के समवर्ती निष्पादन को अनुकरण करने के लिए इंटरप्ट्स का उपयोग किया जाने लगा।<ref>{{cite book |last=Hansen |first=Per Brinch |author-link=Per Brinch Hansen |title=The Origins of Concurrent Programming: From Semaphores to Remote Procedure Calls |isbn=978-0-387-95401-1 |publisher=Springer |year=2002}}</ref> साझा स्मृति के साथ समवर्ती होने से समवर्ती नियंत्रण की समस्या उत्पन्न हुई। मूल रूप से, इस समस्या की कल्पना एक ही कंप्यूटर पर परस्पर बहिष्करण के रूप में की गई थी। [[Edsger Dijkstra]] ने [[सेमाफोर (प्रोग्रामिंग)]] विकसित किया और बाद में, 1971 और 1973 के बीच,<ref>{{cite journal |last=Hansen |first=Per Brinch |author-link=Per Brinch Hansen |date=1996 |title=Monitors and Concurrent Pascal: A Personal History |journal=Communications of the ACM |pages=121–172}}</ref> [[टोनी होरे]]<ref>{{cite journal |last=Hoare |first=Tony |author-link=Tony Hoare |date=October 1974 |title=Monitors: An Operating System Structuring Concept |journal=Communications of the ACM |volume=17 |issue=10 |pages=549–557|doi=10.1145/355620.361161 |s2cid=1005769 }}</ref> और [[प्रति ब्रिन्च हैनसेन]]<ref>{{cite book |last=Hansen |first=Per Brinch |author-link=Per Brinch Hansen |date=July 1973 |title=ऑपरेटिंग सिस्टम सिद्धांत|publisher=Prentice-Hall}}</ref> पारस्परिक बहिष्करण समस्या को हल करने के लिए विकसित [[मॉनिटर (सिंक्रनाइज़ेशन)]]। हालाँकि, इनमें से किसी भी समाधान ने प्रोग्रामिंग भाषा निर्माण प्रदान नहीं किया है जो साझा संसाधनों तक पहुंच को समाहित करता है। इस एनकैप्सुलेशन को बाद में [[क्रमबद्धता]] कंस्ट्रक्शन ([हेविट और एटकिंसन 1977, 1979] और [एटकिंसन 1980]) द्वारा पूरा किया गया था।


गणना के पहले मॉडल (जैसे, [[ट्यूरिंग मशीनें]], पोस्ट प्रोडक्शंस, [[लैम्ब्डा कैलकुलस]], आदि) गणित पर आधारित थे और एक कम्प्यूटेशनल कदम का प्रतिनिधित्व करने के लिए एक वैश्विक स्थिति का उपयोग किया (बाद में [मैककार्थी और हेस 1969] और [डिज्क्स्ट्रा में सामान्यीकृत] 1976] ऐक्टर मॉडल अर्ली हिस्ट्री देखें#इवेंट ऑर्डरिंग बनाम ग्लोबल स्टेट)। प्रत्येक कम्प्यूटेशनल कदम गणना की एक वैश्विक स्थिति से अगले वैश्विक स्थिति तक था। परिमित-राज्य मशीनों के लिए [[ऑटोमेटा सिद्धांत]] में वैश्विक राज्य दृष्टिकोण जारी रखा गया था और [[स्टैक मशीन]]ों को नीचे धकेल दिया गया था, जिसमें उनके गैर-नियतात्मक परिमित ऑटोमेटन संस्करण भी शामिल थे। इस तरह के nondeterministic automata में असीम nondeterminism का गुण होता है; अर्थात्, यदि कोई मशीन अपनी प्रारंभिक अवस्था में शुरू होने पर हमेशा रुकती है, तो यह उन राज्यों की संख्या पर बाध्य होती है जिनमें वह रुकती है।
गणना के पहले मॉडल (जैसे, [[ट्यूरिंग मशीनें]], पोस्ट प्रोडक्शंस, [[लैम्ब्डा कैलकुलस]], आदि) गणित पर आधारित थे और एक कम्प्यूटेशनल कदम का प्रतिनिधित्व करने के लिए एक वैश्विक स्थिति का उपयोग किया (बाद में [मैककार्थी और हेस 1969] और [डिज्क्स्ट्रा में सामान्यीकृत] 1976] ऐक्टर मॉडल अर्ली हिस्ट्री देखें#इवेंट ऑर्डरिंग बनाम ग्लोबल स्टेट)। प्रत्येक कम्प्यूटेशनल कदम गणना की एक वैश्विक स्थिति से अगले वैश्विक स्थिति तक था। परिमित-राज्य मशीनों के लिए [[ऑटोमेटा सिद्धांत]] में वैश्विक राज्य दृष्टिकोण जारी रखा गया था और [[स्टैक मशीन]]ों को नीचे धकेल दिया गया था, जिसमें उनके गैर-नियतात्मक परिमित ऑटोमेटन संस्करण भी सम्मिलित थे। इस तरह के nondeterministic automata में असीम nondeterminism का गुण होता है; अर्थात्, यदि कोई मशीन अपनी प्रारंभिक अवस्था में शुरू होने पर हमेशा रुकती है, तो यह उन राज्यों की संख्या पर बाध्य होती है जिनमें वह रुकती है।


Edsger Dijkstra ने गैर-नियतात्मक वैश्विक राज्य दृष्टिकोण को और विकसित किया। दिज्क्स्ट्रा के मॉडल ने असीमित अनिर्धारणवाद (जिसे असीमित अनिश्चितता भी कहा जाता है) से संबंधित एक विवाद को जन्म दिया, जो समवर्ती (कंप्यूटर विज्ञान) की एक संपत्ति है, जिसके द्वारा साझा संसाधनों के लिए विवाद की मध्यस्थता के परिणामस्वरूप अनुरोध की सेवा में देरी की मात्रा अबाधित हो सकती है। गारंटी है कि अनुरोध अंततः सेवित किया जाएगा। हेविट ने तर्क दिया कि अभिनेता मॉडल को सेवा की गारंटी प्रदान करनी चाहिए। दिज्क्स्ट्रा के मॉडल में, हालांकि एक कंप्यूटर पर अनुक्रमिक निर्देशों के निष्पादन के बीच असीमित समय हो सकता है, एक (समानांतर) प्रोग्राम जो एक अच्छी तरह से परिभाषित राज्य में शुरू हुआ था, केवल राज्यों की सीमित संख्या में समाप्त हो सकता है [दिज्क्स्ट्रा 1976]। नतीजतन, उनका मॉडल सेवा की गारंटी प्रदान नहीं कर सका। दिज्क्स्ट्रा ने तर्क दिया कि असीमित गैर-निर्धारणवाद को लागू करना असंभव था।
Edsger Dijkstra ने गैर-नियतात्मक वैश्विक राज्य दृष्टिकोण को और विकसित किया। दिज्क्स्ट्रा के मॉडल ने असीमित अनिर्धारणवाद (जिसे असीमित अनिश्चितता भी कहा जाता है) से संबंधित एक विवाद को जन्म दिया, जो समवर्ती (कंप्यूटर विज्ञान) की एक संपत्ति है, जिसके द्वारा साझा संसाधनों के लिए विवाद की मध्यस्थता के परिणामस्वरूप अनुरोध की सेवा में देरी की मात्रा अबाधित हो सकती है। गारंटी है कि अनुरोध अंततः सेवित किया जाएगा। हेविट ने तर्क दिया कि ऐक्टर मॉडल को सेवा की गारंटी प्रदान करनी चाहिए। दिज्क्स्ट्रा के मॉडल में, हालांकि एक कंप्यूटर पर अनुक्रमिक निर्देशों के निष्पादन के बीच असीमित समय हो सकता है, एक (समानांतर) प्रोग्राम जो एक अच्छी तरह से परिभाषित राज्य में शुरू हुआ था, केवल राज्यों की सीमित संख्या में समाप्त हो सकता है [दिज्क्स्ट्रा 1976]। नतीजतन, उनका मॉडल सेवा की गारंटी प्रदान नहीं कर सका। दिज्क्स्ट्रा ने तर्क दिया कि असीमित गैर-निर्धारणवाद को लागू करना असंभव था।


हेविट ने अन्यथा तर्क दिया: ऐसी कोई सीमा नहीं है जिसे व्यवस्थित करने के लिए एक [[आर्बिटर (इलेक्ट्रॉनिक्स)]] नामक कम्प्यूटेशनल सर्किट को कितना समय लगता है ([[मेटास्टेबिलिटी (इलेक्ट्रॉनिक्स)]] देखें) पर रखा जा सकता है।<ref name="zenil">{{cite book |last=Hewitt |first=Carl |author-link=Carl Hewitt |date=2012 |chapter=What is computation? Actor Model versus Turing's Model |title=A Computable Universe: Understanding Computation & Exploring Nature as Computation. Dedicated to the memory of Alan M. Turing on the 100th anniversary of his birth. |editor-last=Zenil |editor-first=Hector |publisher=World Scientific Publishing Company}}</ref> आर्बिटर्स का उपयोग कंप्यूटर में उस परिस्थिति से निपटने के लिए किया जाता है, जिसमें कंप्यूटर घड़ियां बाहर से इनपुट के संबंध में अतुल्यकालिक रूप से काम करती हैं, जैसे, कीबोर्ड इनपुट, डिस्क एक्सेस, नेटवर्क इनपुट, आदि। प्राप्त किया जा सकता है और इस बीच कंप्यूटर असीमित संख्या में राज्यों को पार कर सकता है।
हेविट ने अन्यथा तर्क दिया: ऐसी कोई सीमा नहीं है जिसे व्यवस्थित करने के लिए एक [[आर्बिटर (इलेक्ट्रॉनिक्स)]] नामक कम्प्यूटेशनल सर्किट को कितना समय लगता है ([[मेटास्टेबिलिटी (इलेक्ट्रॉनिक्स)]] देखें) पर रखा जा सकता है।<ref name="zenil">{{cite book |last=Hewitt |first=Carl |author-link=Carl Hewitt |date=2012 |chapter=What is computation? Actor Model versus Turing's Model |title=A Computable Universe: Understanding Computation & Exploring Nature as Computation. Dedicated to the memory of Alan M. Turing on the 100th anniversary of his birth. |editor-last=Zenil |editor-first=Hector |publisher=World Scientific Publishing Company}}</ref> आर्बिटर्स का उपयोग कंप्यूटर में उस परिस्थिति से निपटने के लिए किया जाता है, जिसमें कंप्यूटर घड़ियां बाहर से इनपुट के संबंध में अतुल्यकालिक रूप से काम करती हैं, जैसे, कीबोर्ड इनपुट, डिस्क एक्सेस, नेटवर्क इनपुट, आदि। प्राप्त किया जा सकता है और इस बीच कंप्यूटर असीमित संख्या में राज्यों को पार कर सकता है।


अभिनेता मॉडल में अबाधित अनिर्धारणवाद है, जिसे [[डोमेन सिद्धांत]] का उपयोग करके [[ विल क्लिंजर ]] द्वारा गणितीय मॉडल में कैप्चर किया गया था।<ref name="clinger1981"/>अभिनेता मॉडल में कोई वैश्विक स्थिति नहीं है।{{dubious|date=August 2013}}
ऐक्टर मॉडल में अबाधित अनिर्धारणवाद है, जिसे [[डोमेन सिद्धांत]] का उपयोग करके [[ विल क्लिंजर ]] द्वारा गणितीय मॉडल में कैप्चर किया गया था।<ref name="clinger1981"/>ऐक्टर मॉडल में कोई वैश्विक स्थिति नहीं है।{{dubious|date=August 2013}}


=== प्रत्यक्ष संचार और अतुल्यकालिक ===
=== प्रत्यक्ष संचार और अतुल्यकालिक ===
अभिनेता मॉडल में संदेश आवश्यक रूप से बफ़र्ड नहीं हैं। समवर्ती संगणना के मॉडल के पिछले दृष्टिकोणों के साथ यह एक तेज विराम था। बफ़रिंग की कमी ने अभिनेता मॉडल के विकास के समय बहुत सी गलतफहमी पैदा की और अभी भी एक विवादास्पद मुद्दा है। कुछ शोधकर्ताओं ने तर्क दिया कि संदेश ईथर या पर्यावरण में बफ़र किए गए हैं। इसके अलावा, अभिनेता मॉडल में संदेश केवल भेजे जाते हैं (जैसे [[इंटरनेट प्रोटोकॉल]] में [[पैकेट (सूचना प्रौद्योगिकी)]]); प्राप्तकर्ता के साथ एक तुल्यकालिक हैंडशेक की कोई आवश्यकता नहीं है।
ऐक्टर मॉडल में संदेश आवश्यक रूप से बफ़र्ड नहीं हैं। समवर्ती संगणना के मॉडल के पिछले दृष्टिकोणों के साथ यह एक तेज विराम था। बफ़रिंग की कमी ने ऐक्टर मॉडल के विकास के समय बहुत सी गलतफहमी पैदा की और अभी भी एक विवादास्पद मुद्दा है। कुछ शोधकर्ताओं ने तर्क दिया कि संदेश ईथर या पर्यावरण में बफ़र किए गए हैं। इसके अलावा, ऐक्टर मॉडल में संदेश केवल भेजे जाते हैं (जैसे [[इंटरनेट प्रोटोकॉल]] में [[पैकेट (सूचना प्रौद्योगिकी)]]); प्राप्तकर्ता के साथ एक तुल्यकालिक हैंडशेक की कोई आवश्यकता नहीं है।


===संदेशों में अभिनेता निर्माण प्लस पते का अर्थ है चर टोपोलॉजी ===
===संदेशों में ऐक्टर निर्माण प्लस एड्रैस का अर्थ है चर टोपोलॉजी ===
अभिनेता मॉडल का एक स्वाभाविक विकास संदेशों में पतों की अनुमति देना था। पैकेट स्विचिंग [1961 और 1964] से प्रभावित, हेविट ने समवर्ती संगणना के एक नए मॉडल के विकास का प्रस्ताव रखा जिसमें संचार के लिए कोई आवश्यक क्षेत्र बिल्कुल नहीं होगा: वे खाली हो सकते हैं। निस्संदेह, यदि संचार भेजने वाला चाहता है कि प्राप्तकर्ता के पास उन पतों तक पहुंच हो जो प्राप्तकर्ता के पास पहले से नहीं है, तो पता संचार में भेजा जाना होगा।
ऐक्टर मॉडल का एक स्वाभाविक विकास संदेशों में एड्रैस की अनुमति देना था। पैकेट स्विचिंग [1961 और 1964] से प्रभावित, हेविट ने समवर्ती संगणना के एक नए मॉडल के विकास का प्रस्ताव रखा जिसमें संचार के लिए कोई आवश्यक क्षेत्र बिल्कुल नहीं होगा: वे खाली हो सकते हैं। निस्संदेह, यदि संचार भेजने वाला चाहता है कि प्राप्तकर्ता के पास उन एड्रैस तक पहुंच हो जो प्राप्तकर्ता के पास पहले से नहीं है, तो पता संचार में भेजा जाना होगा।


उदाहरण के लिए, एक अभिनेता को एक प्राप्तकर्ता अभिनेता को एक संदेश भेजने की आवश्यकता हो सकती है जिससे वह बाद में प्रतिक्रिया प्राप्त करने की अपेक्षा करता है, लेकिन प्रतिक्रिया वास्तव में एक तीसरे अभिनेता घटक द्वारा नियंत्रित की जाएगी जिसे प्रतिक्रिया प्राप्त करने और संभालने के लिए कॉन्फ़िगर किया गया है (उदाहरण के लिए) , [[पर्यवेक्षक पैटर्न]] को लागू करने वाला एक अलग अभिनेता)। मूल अभिनेता एक संचार भेजकर इसे पूरा कर सकता है जिसमें वह संदेश शामिल है जिसे वह भेजना चाहता है, साथ ही तीसरे अभिनेता का पता जो प्रतिक्रिया को संभालेगा। यह तीसरा अभिनेता जो प्रतिक्रिया को संभालेगा, उसे फिर से शुरू करना कहा जाता है (कभी-कभी इसे निरंतरता या [[स्टैक फ्रेम]] भी कहा जाता है)। जब प्राप्तकर्ता अभिनेता प्रतिक्रिया भेजने के लिए तैयार होता है, तो वह प्रतिक्रिया संदेश को फिर से शुरू करने वाले अभिनेता के पते पर भेजता है जो मूल संचार में शामिल था।
उदाहरण के लिए, एक ऐक्टर को एक प्राप्तकर्ता ऐक्टर को एक संदेश भेजने की आवश्यकता हो सकती है जिससे वह बाद में प्रतिक्रिया प्राप्त करने की अपेक्षा करता है, लेकिन प्रतिक्रिया वास्तव में एक तीसरे ऐक्टर घटक द्वारा नियंत्रित की जाएगी जिसे प्रतिक्रिया प्राप्त करने और संभालने के लिए कॉन्फ़िगर किया गया है (उदाहरण के लिए) , [[पर्यवेक्षक पैटर्न]] को लागू करने वाला एक अलग ऐक्टर)। मूल ऐक्टर एक संचार भेजकर इसे पूरा कर सकता है जिसमें वह संदेश सम्मिलित है जिसे वह भेजना चाहता है, साथ ही तीसरे ऐक्टर का पता जो प्रतिक्रिया को संभालेगा। यह तीसरा ऐक्टर जो प्रतिक्रिया को संभालेगा, उसे फिर से शुरू करना कहा जाता है (कभी-कभी इसे निरंतरता या [[स्टैक फ्रेम]] भी कहा जाता है)। जब प्राप्तकर्ता ऐक्टर प्रतिक्रिया भेजने के लिए तैयार होता है, तो वह प्रतिक्रिया संदेश को फिर से शुरू करने वाले ऐक्टर के एड्रैस पर भेजता है जो मूल संचार में सम्मिलित था।


इसलिए, अभिनेताओं की नए अभिनेताओं को बनाने की क्षमता जिसके साथ वे संचार का आदान-प्रदान कर सकते हैं, संदेशों में अन्य अभिनेताओं के पते शामिल करने की क्षमता के साथ, अभिनेताओं को एक दूसरे के साथ मनमाने ढंग से परिवर्तनशील सामयिक संबंधों को बनाने और भाग लेने की क्षमता देता है, जितना सिमुला और अन्य वस्तु-उन्मुख भाषाओं में वस्तुओं को भी संदेश-विनिमय वस्तुओं के चर टोपोलॉजी में संबंधपरक रूप से बनाया जा सकता है।
इसलिए, अभिनेताओं की नए अभिनेताओं को बनाने की क्षमता जिसके साथ वे संचार का आदान-प्रदान कर सकते हैं, संदेशों में अन्य अभिनेताओं के एड्रैस सम्मिलित करने की क्षमता के साथ, अभिनेताओं को एक दूसरे के साथ मनमाने ढंग से परिवर्तनशील सामयिक संबंधों को बनाने और भाग लेने की क्षमता देता है, जितना सिमुला और अन्य वस्तु-उन्मुख भाषाओं में वस्तुओं को भी संदेश-विनिमय वस्तुओं के चर टोपोलॉजी में संबंधपरक रूप से बनाया जा सकता है।


=== स्वाभाविक रूप से समवर्ती ===
=== स्वाभाविक रूप से समवर्ती ===
अनुक्रमिक प्रक्रियाओं की रचना के आधार पर पिछले दृष्टिकोण के विपरीत, अभिनेता मॉडल को एक अंतर्निहित समवर्ती मॉडल के रूप में विकसित किया गया था। अभिनेता मॉडल में अनुक्रमिकता एक विशेष मामला था जो अभिनेता मॉडल सिद्धांत में वर्णित समवर्ती संगणना से प्राप्त हुआ था।
अनुक्रमिक प्रक्रियाओं की रचना के आधार पर पिछले दृष्टिकोण के विपरीत, ऐक्टर मॉडल को एक अंतर्निहित समवर्ती मॉडल के रूप में विकसित किया गया था। ऐक्टर मॉडल में अनुक्रमिकता एक विशेष मामला था जो ऐक्टर मॉडल सिद्धांत में वर्णित समवर्ती संगणना से प्राप्त हुआ था।


===संदेश आगमन के आदेश पर कोई आवश्यकता नहीं===
===संदेश आगमन के आदेश पर कोई आवश्यकता नहीं===
{{More citations needed section|date=March 2012}}
{{More citations needed section|date=March 2012}}
हेविट ने आवश्यकता को जोड़ने के खिलाफ तर्क दिया कि संदेशों को उस क्रम में आना चाहिए जिसमें वे अभिनेता को भेजे गए हैं। यदि आउटपुट संदेश ऑर्डरिंग वांछित है, तो यह एक कतार अभिनेता द्वारा तैयार किया जा सकता है जो यह कार्यक्षमता प्रदान करता है। ऐसा कतार अभिनेता आने वाले संदेशों को कतारबद्ध करेगा ताकि उन्हें [[फीफो (कंप्यूटिंग और इलेक्ट्रॉनिक्स)]] क्रम में पुनर्प्राप्त किया जा सके। तो अगर कोई अभिनेता <code>X</code> एक संदेश भेजा <code>M1</code> एक अभिनेता को <code>Y</code>, और बाद में <code>X</code> एक और संदेश भेजा <code>M2</code> को <code>Y</code>, इसकी कोई आवश्यकता नहीं है <code>M1</code> पर आता है <code>Y</code> पहले <code>M2</code>.
हेविट ने आवश्यकता को जोड़ने के खिलाफ तर्क दिया कि संदेशों को उस क्रम में आना चाहिए जिसमें वे ऐक्टर को भेजे गए हैं। यदि आउटपुट संदेश ऑर्डरिंग वांछित है, तो यह एक कतार ऐक्टर द्वारा तैयार किया जा सकता है जो यह कार्यक्षमता प्रदान करता है। ऐसा कतार ऐक्टर आने वाले संदेशों को कतारबद्ध करेगा ताकि उन्हें [[फीफो (कंप्यूटिंग और इलेक्ट्रॉनिक्स)]] क्रम में पुनर्प्राप्त किया जा सके। तो अगर कोई ऐक्टर <code>X</code> एक संदेश भेजा <code>M1</code> एक ऐक्टर को <code>Y</code>, और बाद में <code>X</code> एक और संदेश भेजा <code>M2</code> को <code>Y</code>, इसकी कोई आवश्यकता नहीं है <code>M1</code> पर आता है <code>Y</code> पहले <code>M2</code>.


इस संबंध में अभिनेता मॉडल पैकेट स्विचिंग सिस्टम को प्रतिबिंबित करता है जो इस बात की गारंटी नहीं देता है कि भेजे गए क्रम में पैकेट प्राप्त होना चाहिए। डिलीवरी गारंटी का आदेश प्रदान नहीं करने से पैकेट को बफर पैकेट में स्विच करने, पैकेट भेजने के लिए कई रास्तों का उपयोग करने, क्षतिग्रस्त पैकेट को फिर से भेजने और अन्य अनुकूलन प्रदान करने की अनुमति मिलती है।
इस संबंध में ऐक्टर मॉडल पैकेट स्विचिंग सिस्टम को प्रतिबिंबित करता है जो इस बात की गारंटी नहीं देता है कि भेजे गए क्रम में पैकेट प्राप्त होना चाहिए। डिलीवरी गारंटी का आदेश प्रदान नहीं करने से पैकेट को बफर पैकेट में स्विच करने, पैकेट भेजने के लिए कई रास्तों का उपयोग करने, क्षतिग्रस्त पैकेट को फिर से भेजने और अन्य अनुकूलन प्रदान करने की अनुमति मिलती है।


उदाहरण के लिए, अभिनेताओं को संदेशों के प्रसंस्करण को पाइपलाइन करने की अनुमति है। इसका मतलब यह है कि किसी मैसेज को प्रोसेस करने के दौरान <code>M1</code>, एक अभिनेता अगले संदेश को संसाधित करने के लिए उपयोग किए जाने वाले व्यवहार को निर्दिष्ट कर सकता है, और फिर वास्तव में दूसरे संदेश को संसाधित करना शुरू कर सकता है <code>M2</code> इससे पहले कि यह प्रसंस्करण समाप्त कर ले <code>M1</code>. सिर्फ इसलिए कि एक अभिनेता को संदेशों के प्रसंस्करण को पाइपलाइन करने की अनुमति है, इसका मतलब यह नहीं है कि उसे प्रसंस्करण को पाइपलाइन करना चाहिए। संदेश पाइपलाइन में है या नहीं यह एक इंजीनियरिंग ट्रेडऑफ़ है। एक बाहरी प्रेक्षक को कैसे पता चलेगा कि किसी अभिनेता द्वारा संदेश का प्रसंस्करण पाइपलाइन किया गया है या नहीं? पाइपलाइनिंग की संभावना से निर्मित अभिनेता की परिभाषा में कोई अस्पष्टता नहीं है। बेशक, कुछ कार्यान्वयनों में गलत तरीके से पाइपलाइन अनुकूलन करना संभव है, जिस स्थिति में अनपेक्षित व्यवहार हो सकता है।
उदाहरण के लिए, अभिनेताओं को संदेशों के प्रसंस्करण को पाइपलाइन करने की अनुमति है। इसका मतलब यह है कि किसी मैसेज को प्रोसेस करने के समय <code>M1</code>, एक ऐक्टर अगले संदेश को संसाधित करने के लिए उपयोग किए जाने वाले व्यवहार को निर्दिष्ट कर सकता है, और फिर वास्तव में दूसरे संदेश को संसाधित करना शुरू कर सकता है <code>M2</code> इससे पहले कि यह प्रसंस्करण समाप्त कर ले <code>M1</code>. सिर्फ इसलिए कि एक ऐक्टर को संदेशों के प्रसंस्करण को पाइपलाइन करने की अनुमति है, इसका मतलब यह नहीं है कि उसे प्रसंस्करण को पाइपलाइन करना चाहिए। संदेश पाइपलाइन में है या नहीं यह एक इंजीनियरिंग ट्रेडऑफ़ है। एक बाहरी प्रेक्षक को कैसे पता चलेगा कि किसी ऐक्टर द्वारा संदेश का प्रसंस्करण पाइपलाइन किया गया है या नहीं? पाइपलाइनिंग की संभावना से निर्मित ऐक्टर की परिभाषा में कोई अस्पष्टता नहीं है। बेशक, कुछ कार्यान्वयनों में गलत तरीके से पाइपलाइन अनुकूलन करना संभव है, जिस स्थिति में अनपेक्षित व्यवहार हो सकता है।


=== मोहल्ला ===
=== मोहल्ला ===
अभिनेता मॉडल की एक अन्य महत्वपूर्ण विशेषता स्थानीयता है।
ऐक्टर मॉडल की एक अन्य महत्वपूर्ण विशेषता स्थानीयता है।


स्थानीयता का अर्थ है कि एक संदेश को संसाधित करने में, एक अभिनेता केवल उन पतों पर संदेश भेज सकता है जो उसे संदेश में प्राप्त होते हैं, वे पते जो पहले से ही संदेश प्राप्त करने से पहले थे, और अभिनेताओं के पते जो संदेश को संसाधित करते समय बनाते हैं। (लेकिन अभिनेताओं के #Synthesizing पते देखें।)
स्थानीयता का अर्थ है कि एक संदेश को संसाधित करने में, एक ऐक्टर केवल उन एड्रैस पर संदेश भेज सकता है जो उसे संदेश में प्राप्त होते हैं, वे एड्रैस जो पहले से ही संदेश प्राप्त करने से पहले थे, और अभिनेताओं के एड्रैस जो संदेश को संसाधित करते समय बनाते हैं। (लेकिन अभिनेताओं के #Synthesizing एड्रैस देखें।)


इसके अलावा स्थानीयता का अर्थ है कि कई स्थानों में एक साथ परिवर्तन नहीं होता है। इस तरह यह संगामिति के कुछ अन्य मॉडलों से अलग है, उदाहरण के लिए, [[पेट्री नेट]] मॉडल जिसमें टोकन को एक साथ कई स्थानों से हटाकर अन्य स्थानों पर रखा जाता है।
इसके अलावा स्थानीयता का अर्थ है कि कई स्थानों में एक साथ परिवर्तन नहीं होता है। इस तरह यह संगामिति के कुछ अन्य मॉडलों से अलग है, उदाहरण के लिए, [[पेट्री नेट]] मॉडल जिसमें टोकन को एक साथ कई स्थानों से हटाकर अन्य स्थानों पर रखा जाता है।


=== कंपोज़िंग एक्टर सिस्टम्स ===
=== कंपोज़िंग एक्टर सिस्टम्स ===
गुल आगा के डॉक्टरेट शोध प्रबंध में विकसित किए गए [[ प्रतिरूपकता (प्रोग्रामिंग) ]] का एक महत्वपूर्ण पहलू अभिनेता प्रणालियों को बड़े लोगों में बनाने का विचार है,<ref name="agha1986"/>बाद में गुल आगा, इयान मेसन, स्कॉट स्मिथ और [[कैरोलिन टैल्कॉट]] द्वारा विकसित किया गया।<ref name="agha1993"/>
गुल आगा के डॉक्टरेट शोध प्रबंध में विकसित किए गए [[ प्रतिरूपकता (प्रोग्रामिंग) ]] का एक महत्वपूर्ण पहलू ऐक्टर प्रणालियों को बड़े लोगों में बनाने का विचार है,<ref name="agha1986"/>बाद में गुल आगा, इयान मेसन, स्कॉट स्मिथ और [[कैरोलिन टैल्कॉट]] द्वारा विकसित किया गया।<ref name="agha1993"/>




=== व्यवहार ===
=== व्यवहार ===
एक प्रमुख नवाचार गणितीय कार्य के रूप में निर्दिष्ट व्यवहार का परिचय था, यह व्यक्त करने के लिए कि एक अभिनेता क्या करता है जब वह संदेश को संसाधित करता है, जिसमें आने वाले अगले संदेश को संसाधित करने के लिए एक नया व्यवहार निर्दिष्ट करना शामिल है। व्यवहार ने संगामिति में साझाकरण को गणितीय रूप से मॉडल करने के लिए एक तंत्र प्रदान किया।
एक प्रमुख नवाचार गणितीय कार्य के रूप में निर्दिष्ट व्यवहार का परिचय था, यह व्यक्त करने के लिए कि एक ऐक्टर क्या करता है जब वह संदेश को संसाधित करता है, जिसमें आने वाले अगले संदेश को संसाधित करने के लिए एक नया व्यवहार निर्दिष्ट करना सम्मिलित है। व्यवहार ने संगामिति में साझाकरण को गणितीय रूप से मॉडल करने के लिए एक तंत्र प्रदान किया।


व्यवहार ने अभिनेता मॉडल को कार्यान्वयन विवरण से भी मुक्त कर दिया, उदाहरण के लिए, स्मॉलटाक -72 टोकन स्ट्रीम दुभाषिया। हालांकि, यह समझना महत्वपूर्ण है कि अभिनेता मॉडल द्वारा वर्णित प्रणालियों के कुशल कार्यान्वयन के लिए व्यापक अनुकूलन की आवश्यकता होती है। विवरण के लिए अभिनेता मॉडल कार्यान्वयन देखें।
व्यवहार ने ऐक्टर मॉडल को कार्यान्वयन विवरण से भी मुक्त कर दिया, उदाहरण के लिए, स्मॉलटाक -72 टोकन स्ट्रीम दुभाषिया। हालांकि, यह समझना महत्वपूर्ण है कि ऐक्टर मॉडल द्वारा वर्णित प्रणालियों के कुशल कार्यान्वयन के लिए व्यापक अनुकूलन की आवश्यकता होती है। विवरण के लिए ऐक्टर मॉडल कार्यान्वयन देखें।


=== मॉडलिंग अन्य समवर्ती सिस्टम ===
=== मॉडलिंग अन्य समवर्ती सिस्टम ===
अन्य संगामिति प्रणालियों (जैसे, [[प्रक्रिया गणना]]) को [[दो-चरण प्रतिबद्ध प्रोटोकॉल]] का उपयोग करके अभिनेता मॉडल में तैयार किया जा सकता है।<ref>Frederick Knabe. [https://www.researchgate.net/profile/Frederick_Knabe/publication/2823488_A_Distributed_Protocol_for_Channel-Based_Communication_with_Choice/links/00463536b853ab72ef000000.pdf A Distributed Protocol for Channel-Based Communication with Choice PARLE 1992] {{Webarchive|url=https://web.archive.org/web/20170831084514/https://www.researchgate.net/profile/Frederick_Knabe/publication/2823488_A_Distributed_Protocol_for_Channel-Based_Communication_with_Choice/links/00463536b853ab72ef000000.pdf |date=2017-08-31 }}.</ref>
अन्य संगामिति प्रणालियों (जैसे, [[प्रक्रिया गणना]]) को [[दो-चरण प्रतिबद्ध प्रोटोकॉल]] का उपयोग करके ऐक्टर मॉडल में तैयार किया जा सकता है।<ref>Frederick Knabe. [https://www.researchgate.net/profile/Frederick_Knabe/publication/2823488_A_Distributed_Protocol_for_Channel-Based_Communication_with_Choice/links/00463536b853ab72ef000000.pdf A Distributed Protocol for Channel-Based Communication with Choice PARLE 1992] {{Webarchive|url=https://web.archive.org/web/20170831084514/https://www.researchgate.net/profile/Frederick_Knabe/publication/2823488_A_Distributed_Protocol_for_Channel-Based_Communication_with_Choice/links/00463536b853ab72ef000000.pdf |date=2017-08-31 }}.</ref>




=== कम्प्यूटेशनल प्रतिनिधित्व प्रमेय ===
=== कम्प्यूटेशनल प्रतिनिधित्व प्रमेय ===
{{see also|Denotational semantics of the Actor model}}
{{see also|Denotational semantics of the Actor model}}
सिस्टम के लिए अभिनेता मॉडल में एक कम्प्यूटेशनल प्रतिनिधित्व प्रमेय है जो इस अर्थ में बंद है कि वे बाहर से संचार प्राप्त नहीं करते हैं। एक बंद प्रणाली द्वारा निरूपित गणितीय संकेत <math>\mathtt{S}</math> प्रारंभिक व्यवहार से निर्मित होता है <math>\bot_\mathtt{S}</math> और एक व्यवहार-अनुमानित समारोह <math>\mathbf{progression}_\mathtt{S}.</math> ये तेजी से बेहतर सन्निकटन प्राप्त करते हैं और इसके लिए एक अर्थ (अर्थ) का निर्माण करते हैं <math>\mathtt{S}</math> इस प्रकार [हेविट 2008; क्लिंजर 1981]:
सिस्टम के लिए ऐक्टर मॉडल में एक कम्प्यूटेशनल प्रतिनिधित्व प्रमेय है जो इस अर्थ में बंद है कि वे बाहर से संचार प्राप्त नहीं करते हैं। एक बंद प्रणाली द्वारा निरूपित गणितीय संकेत <math>\mathtt{S}</math> प्रारंभिक व्यवहार से निर्मित होता है <math>\bot_\mathtt{S}</math> और एक व्यवहार-अनुमानित समारोह <math>\mathbf{progression}_\mathtt{S}.</math> ये तेजी से अधिकतम सन्निकटन प्राप्त करते हैं और इसके लिए एक अर्थ (अर्थ) का निर्माण करते हैं <math>\mathtt{S}</math> इस प्रकार [हेविट 2008; क्लिंजर 1981]:


:<math>\mathbf{Denote}_{\mathtt{S}} \equiv \lim_{i \to \infty} \mathbf{progression}_{\mathtt{S}^i}(\bot_\mathtt{S})</math>
:<math>\mathbf{Denote}_{\mathtt{S}} \equiv \lim_{i \to \infty} \mathbf{progression}_{\mathtt{S}^i}(\bot_\mathtt{S})</math>
इस प्रकार से, <math>\mathtt{S}</math> गणितीय रूप से इसके सभी संभावित व्यवहारों के संदर्भ में वर्णित किया जा सकता है (जिनमें वे भी शामिल हैं जिनमें अबाधित अनिर्धारणवाद शामिल है)। यद्यपि <math>\mathbf{Denote}_{\mathtt{S}}</math> का क्रियान्वयन नहीं है <math>\mathtt{S}</math>, इसका उपयोग चर्च-ट्यूरिंग-रॉसर-क्लीन थीसिस [क्लीन 1943] के सामान्यीकरण को साबित करने के लिए किया जा सकता है:
इस प्रकार से, <math>\mathtt{S}</math> गणितीय रूप से इसके सभी संभावित व्यवहारों के संदर्भ में वर्णित किया जा सकता है (जिनमें वे भी सम्मिलित हैं जिनमें अबाधित अनिर्धारणवाद सम्मिलित है)। यद्यपि <math>\mathbf{Denote}_{\mathtt{S}}</math> का क्रियान्वयन नहीं है <math>\mathtt{S}</math>, इसका उपयोग चर्च-ट्यूरिंग-रॉसर-क्लीन थीसिस [क्लीन 1943] के सामान्यीकरण को साबित करने के लिए किया जा सकता है:


उपरोक्त प्रमेय का एक परिणाम यह है कि एक परिमित अभिनेता गैर-निर्धारक रूप से एक के साथ प्रतिक्रिया कर सकता है {{clarify span|uncountable|reason=Uncountability is the property of real numbers, this sounds like (countably) infinite was meant|date=November 2013}} विभिन्न आउटपुट की संख्या।
उपरोक्त प्रमेय का एक परिणाम यह है कि एक परिमित ऐक्टर गैर-निर्धारक रूप से एक के साथ प्रतिक्रिया कर सकता है {{clarify span|uncountable|reason=Uncountability is the property of real numbers, this sounds like (countably) infinite was meant|date=November 2013}} विभिन्न आउटपुट की संख्या।


=== लॉजिक प्रोग्रामिंग से संबंध ===
=== लॉजिक प्रोग्रामिंग से संबंध ===
{{More citations needed section|date=March 2012}}
{{More citations needed section|date=March 2012}}
अभिनेता मॉडल के विकास के लिए प्रमुख प्रेरणाओं में से एक [[योजनाकार प्रोग्रामिंग भाषा]] के विकास में उत्पन्न नियंत्रण संरचना के मुद्दों को समझना और उनसे निपटना था।{{citation needed|date=October 2013}} अभिनेता मॉडल को शुरू में परिभाषित किए जाने के बाद, [[रॉबर्ट कोवाल्स्की]] की थीसिस के सापेक्ष मॉडल की शक्ति को समझना एक महत्वपूर्ण चुनौती थी कि संगणना को निगमन द्वारा समाहित किया जा सकता है। हेविट ने तर्क दिया कि अभिनेता मॉडल में समवर्ती संगणना के लिए कोवाल्स्की की थीसिस झूठी निकली (देखें समवर्ती संगणना में अनिश्चितता)।
ऐक्टर मॉडल के विकास के लिए प्रमुख प्रेरणाओं में से एक [[योजनाकार प्रोग्रामिंग भाषा]] के विकास में उत्पन्न नियंत्रण संरचना के मुद्दों को समझना और उनसे निपटना था।{{citation needed|date=October 2013}} ऐक्टर मॉडल को शुरू में परिभाषित किए जाने के बाद, [[रॉबर्ट कोवाल्स्की]] की थीसिस के सापेक्ष मॉडल की शक्ति को समझना एक महत्वपूर्ण चुनौती थी कि संगणना को निगमन द्वारा समाहित किया जा सकता है। हेविट ने तर्क दिया कि ऐक्टर मॉडल में समवर्ती संगणना के लिए कोवाल्स्की की थीसिस झूठी निकली (देखें समवर्ती संगणना में अनिश्चितता)।


फिर भी, [[तर्क प्रोग्रामिंग]] को समवर्ती संगणना तक विस्तारित करने का प्रयास किया गया। हालांकि, हेविट और आगा [1991] ने दावा किया कि परिणामी प्रणालियां निम्नलिखित अर्थों में निगमनात्मक नहीं थीं: समवर्ती तर्क प्रोग्रामिंग प्रणालियों के कम्प्यूटेशनल चरण पिछले चरणों से कटौतीत्मक रूप से पालन नहीं करते हैं (समवर्ती संगणना में अनिश्चितता देखें)। हाल ही में, लॉजिक प्रोग्रामिंग को अभिनेता मॉडल में एक तरह से एकीकृत किया गया है जो तार्किक शब्दार्थ को बनाए रखता है।<ref name="zenil"/>
फिर भी, [[तर्क प्रोग्रामिंग]] को समवर्ती संगणना तक विस्तारित करने का प्रयास किया गया। हालांकि, हेविट और आगा [1991] ने दावा किया कि परिणामी प्रणालियां निम्नलिखित अर्थों में निगमनात्मक नहीं थीं: समवर्ती तर्क प्रोग्रामिंग प्रणालियों के कम्प्यूटेशनल चरण पिछले चरणों से कटौतीत्मक रूप से पालन नहीं करते हैं (समवर्ती संगणना में अनिश्चितता देखें)। हाल ही में, लॉजिक प्रोग्रामिंग को ऐक्टर मॉडल में एक तरह से एकीकृत किया गया है जो तार्किक शब्दार्थ को बनाए रखता है।<ref name="zenil"/>




=== प्रवासन ===
=== प्रवासन ===
अभिनेता मॉडल में प्रवास स्थान बदलने के लिए अभिनेताओं की क्षमता है। उदाहरण के लिए, अपने शोध प्रबंध में, अकी योनेज़ावा ने एक डाकघर का मॉडल तैयार किया जिसमें ग्राहक अभिनेता प्रवेश कर सकते थे, संचालन के दौरान स्थान बदल सकते थे और बाहर निकल सकते थे। एक अभिनेता जो माइग्रेट कर सकता है, एक स्थान अभिनेता के द्वारा मॉडल किया जा सकता है जो अभिनेता के माइग्रेट होने पर बदल जाता है। हालाँकि इस मॉडलिंग की विश्वसनीयता विवादास्पद है और शोध का विषय है।{{Citation needed|date=March 2012}}
ऐक्टर मॉडल में प्रवास स्थान बदलने के लिए अभिनेताओं की क्षमता है। उदाहरण के लिए, अपने शोध प्रबंध में, अकी योनेज़ावा ने एक डाकघर का मॉडल तैयार किया जिसमें ग्राहक ऐक्टर प्रवेश कर सकते थे, संचालन के समय स्थान बदल सकते थे और बाहर निकल सकते थे। एक ऐक्टर जो माइग्रेट कर सकता है, एक स्थान ऐक्टर के द्वारा मॉडल किया जा सकता है जो ऐक्टर के माइग्रेट होने पर बदल जाता है। हालाँकि इस मॉडलिंग की विश्वसनीयता विवादास्पद है और शोध का विषय है।{{Citation needed|date=March 2012}}


=== सुरक्षा ===
=== सुरक्षा ===
{{More citations needed section|date=August 2021}}
{{More citations needed section|date=August 2021}}
अभिनेताओं की सुरक्षा को निम्नलिखित तरीकों से संरक्षित किया जा सकता है:
अभिनेताओं की सुरक्षा को निम्नलिखित तरीकों से संरक्षित किया जा सकता है:
* [[कठोर नियंत्रण]] जिसमें अभिनेता शारीरिक रूप से जुड़े होते हैं
* [[कठोर नियंत्रण]] जिसमें ऐक्टर शारीरिक रूप से जुड़े होते हैं
* [[कंप्यूटर हार्डवेयर]] जैसे [[बरोज़ B5000]], [[लिस्प मशीन]], आदि।
* [[कंप्यूटर हार्डवेयर]] जैसे [[बरोज़ B5000]], [[लिस्प मशीन]], आदि।
* [[आभाषी दुनिया]] जैसे [[जावा वर्चुअल मशीन]], [[ सामान्य भाषा रनटाइम ]], आदि।
* [[आभाषी दुनिया]] जैसे [[जावा वर्चुअल मशीन]], [[ सामान्य भाषा रनटाइम ]], आदि।
* क्षमता-आधारित सुरक्षा के रूप में [[ऑपरेटिंग सिस्टम]]|क्षमता-आधारित सिस्टम
* क्षमता-आधारित सुरक्षा के रूप में [[ऑपरेटिंग सिस्टम]]|क्षमता-आधारित सिस्टम
* अभिनेताओं और उनके पतों के डिजिटल हस्ताक्षर और/या [[ कूटलेखन ]]
* अभिनेताओं और उनके एड्रैस के डिजिटल हस्ताक्षर और/या [[ कूटलेखन ]]


=== अभिनेताओं के पते संश्लेषित करना ===
=== अभिनेताओं के एड्रैस संश्लेषित करना ===
{{More citations needed section|date=March 2012}}
{{More citations needed section|date=March 2012}}
अभिनेता मॉडल में एक नाजुक बिंदु अभिनेता के पते को संश्लेषित करने की क्षमता है। कुछ मामलों में पतों के संश्लेषण को रोकने के लिए सुरक्षा का उपयोग किया जा सकता है (#सुरक्षा देखें)। हालाँकि, यदि एक अभिनेता का पता केवल एक बिट स्ट्रिंग है, तो स्पष्ट रूप से इसे संश्लेषित किया जा सकता है, हालांकि यह मुश्किल हो सकता है या किसी अभिनेता के पते का अनुमान लगाना भी असंभव हो सकता है यदि बिट स्ट्रिंग्स काफी लंबे हैं। SOAP एक समापन बिंदु के पते के लिए एक [[यूनिफ़ॉर्म रिसोर्स लोकेटर]] का उपयोग करता है जहाँ एक अभिनेता तक पहुँचा जा सकता है। चूंकि यूनिफ़ॉर्म रिसोर्स लोकेटर एक कैरेक्टर स्ट्रिंग है, इसे स्पष्ट रूप से संश्लेषित किया जा सकता है, हालांकि एन्क्रिप्शन इसे अनुमान लगाने में लगभग असंभव बना सकता है।
ऐक्टर मॉडल में एक नाजुक बिंदु ऐक्टर के एड्रैस को संश्लेषित करने की क्षमता है। कुछ मामलों में एड्रैस के संश्लेषण को रोकने के लिए सुरक्षा का उपयोग किया जा सकता है (#सुरक्षा देखें)। हालाँकि, यदि एक ऐक्टर का पता केवल एक बिट स्ट्रिंग है, तो स्पष्ट रूप से इसे संश्लेषित किया जा सकता है, हालांकि यह मुश्किल हो सकता है या किसी ऐक्टर के एड्रैस का अनुमान लगाना भी असंभव हो सकता है यदि बिट स्ट्रिंग्स काफी लंबे हैं। SOAP एक समापन बिंदु के एड्रैस के लिए एक [[यूनिफ़ॉर्म रिसोर्स लोकेटर]] का उपयोग करता है जहाँ एक ऐक्टर तक पहुँचा जा सकता है। चूंकि यूनिफ़ॉर्म रिसोर्स लोकेटर एक कैरेक्टर स्ट्रिंग है, इसे स्पष्ट रूप से संश्लेषित किया जा सकता है, हालांकि एन्क्रिप्शन इसे अनुमान लगाने में लगभग असंभव बना सकता है।


अभिनेताओं के पतों का संश्लेषण आमतौर पर मानचित्रण का उपयोग करके किया जाता है। वास्तविक अभिनेता पतों पर मैपिंग करने के लिए एक अभिनेता प्रणाली का उपयोग करने का विचार है। उदाहरण के लिए, कंप्यूटर पर कंप्यूटर की मेमोरी संरचना को एक अभिनेता प्रणाली के रूप में तैयार किया जा सकता है जो मैपिंग करता है। SOAP पतों के मामले में, यह [[ डोमेन की नामांकन प्रणाली ]] और बाकी यूनिफ़ॉर्म रिसोर्स लोकेटर मैपिंग की मॉडलिंग कर रहा है।
अभिनेताओं के एड्रैस का संश्लेषण सामान्य रूप से मानचित्रण का उपयोग करके किया जाता है। वास्तविक ऐक्टर एड्रैस पर मैपिंग करने के लिए एक ऐक्टर प्रणाली का उपयोग करने का विचार है। उदाहरण के लिए, कंप्यूटर पर कंप्यूटर की मेमोरी संरचना को एक ऐक्टर प्रणाली के रूप में तैयार किया जा सकता है जो मैपिंग करता है। SOAP एड्रैस की  स्थिति में, यह [[ डोमेन की नामांकन प्रणाली ]] और बाकी यूनिफ़ॉर्म रिसोर्स लोकेटर मैपिंग की मॉडलिंग कर रहा है।


=== संदेश पास करने वाले संगामिति === के अन्य मॉडलों के साथ तुलना करें
=== संदेश पास करने वाले संगामिति === के अन्य मॉडलों के साथ तुलना करें
संगामिति पर [[रॉबिन मिलनर]] का आरंभिक प्रकाशित कार्य<ref>Robin Milner. Processes: A Mathematical Model of Computing Agents in Logic Colloquium 1973.</ref> यह भी उल्लेखनीय था कि यह अनुक्रमिक प्रक्रियाओं की रचना पर आधारित नहीं था। उनका काम अभिनेता मॉडल से अलग था क्योंकि यह निश्चित टोपोलॉजी की प्रक्रियाओं की एक निश्चित संख्या पर आधारित था जो समकालिक संचार का उपयोग करके संख्याओं और तारों को संप्रेषित करता था। मूल संचार अनुक्रमिक प्रक्रिया (सीएसपी) मॉडल<ref>C.A.R. Hoare. [http://portal.acm.org/citation.cfm?id=359585&dl=GUIDE&coll=GUIDE&CFID=19884966&CFTOKEN=55490895 Communicating sequential processes] CACM. August 1978.</ref> टोनी होरे द्वारा प्रकाशित अभिनेता मॉडल से भिन्न है क्योंकि<!-- redundant --> यह एक निश्चित टोपोलॉजी में जुड़ी अनुक्रमिक प्रक्रियाओं की एक निश्चित संख्या की समानांतर रचना पर आधारित था, और प्रक्रिया के नामों के आधार पर सिंक्रोनस संदेश-पासिंग का उपयोग करके संचार करना (अभिनेता मॉडल और प्रक्रिया गणना इतिहास # प्रारंभिक कार्य देखें)। सीएसपी के बाद के संस्करणों ने चैनलों के माध्यम से अनाम संचार के पक्ष में प्रक्रिया के नाम के आधार पर संचार को छोड़ दिया, संचार प्रणालियों के कलन और π-कैलकुलस पर मिलनर के काम में भी एक दृष्टिकोण का उपयोग किया गया।
संगामिति पर [[रॉबिन मिलनर]] का आरंभिक प्रकाशित कार्य<ref>Robin Milner. Processes: A Mathematical Model of Computing Agents in Logic Colloquium 1973.</ref> यह भी उल्लेखनीय था कि यह अनुक्रमिक प्रक्रियाओं की रचना पर आधारित नहीं था। उनका काम ऐक्टर मॉडल से अलग था क्योंकि यह निश्चित टोपोलॉजी की प्रक्रियाओं की एक निश्चित संख्या पर आधारित था जो समकालिक संचार का उपयोग करके संख्याओं और तारों को संप्रेषित करता था। मूल संचार अनुक्रमिक प्रक्रिया (सीएसपी) मॉडल<ref>C.A.R. Hoare. [http://portal.acm.org/citation.cfm?id=359585&dl=GUIDE&coll=GUIDE&CFID=19884966&CFTOKEN=55490895 Communicating sequential processes] CACM. August 1978.</ref> टोनी होरे द्वारा प्रकाशित ऐक्टर मॉडल से भिन्न है क्योंकि<!-- redundant --> यह एक निश्चित टोपोलॉजी में जुड़ी अनुक्रमिक प्रक्रियाओं की एक निश्चित संख्या की समानांतर रचना पर आधारित था, और प्रक्रिया के नामों के आधार पर सिंक्रोनस संदेश-पासिंग का उपयोग करके संचार करना (ऐक्टर मॉडल और प्रक्रिया गणना इतिहास # प्रारंभिक कार्य देखें)। सीएसपी के बाद के संस्करणों ने चैनलों के माध्यम से अनाम संचार के पक्ष में प्रक्रिया के नाम के आधार पर संचार को छोड़ दिया, संचार प्रणालियों के कलन और π-कैलकुलस पर मिलनर के काम में भी एक दृष्टिकोण का उपयोग किया गया।


मिल्नर और होरे दोनों के इन शुरुआती मॉडलों में बंधी हुई गैर-नियतत्ववाद की संपत्ति थी। आधुनिक, सैद्धांतिक सीएसपी ([होरे 1985] और [रोसको 2005]) स्पष्ट रूप से अबाधित अनिर्धारणवाद प्रदान करता है।
मिल्नर और होरे दोनों के इन शुरुआती मॉडलों में बंधी हुई गैर-नियतत्ववाद की संपत्ति थी। आधुनिक, सैद्धांतिक सीएसपी ([होरे 1985] और [रोसको 2005]) स्पष्ट रूप से अबाधित अनिर्धारणवाद प्रदान करता है।
Line 150: Line 150:


== प्रभाव ==
== प्रभाव ==
अभिनेता मॉडल सिद्धांत विकास और व्यावहारिक सॉफ्टवेयर विकास दोनों पर प्रभावशाली रहा है।
ऐक्टर मॉडल सिद्धांत विकास और व्यावहारिक सॉफ्टवेयर विकास दोनों पर प्रभावशाली रहा है।


=== सिद्धांत ===
=== सिद्धांत ===
अभिनेता मॉडल ने π-कैलकुलस के विकास और बाद की प्रक्रिया कैलकुली को प्रभावित किया है। अपने ट्यूरिंग व्याख्यान में, रॉबिन मिलनर ने लिखा:<ref>{{cite journal|title=अंतःक्रिया के तत्व|journal=Communications of the ACM |volume=36 |pages=78–89 |doi=10.1145/151233.151240 |year=1993 |last1=Milner |first1=Robin|doi-access=free }}</ref>
ऐक्टर मॉडल ने π-कैलकुलस के विकास और बाद की प्रक्रिया कैलकुली को प्रभावित किया है। अपने ट्यूरिंग व्याख्यान में, रॉबिन मिलनर ने लिखा:<ref>{{cite journal|title=अंतःक्रिया के तत्व|journal=Communications of the ACM |volume=36 |pages=78–89 |doi=10.1145/151233.151240 |year=1993 |last1=Milner |first1=Robin|doi-access=free }}</ref>
<blockquote>अब, शुद्ध लैम्ब्डा-कैलकुलस को केवल दो प्रकार की चीज़ों से बनाया गया है: टर्म्स और वेरिएबल्स। क्या हम एक प्रक्रिया कलन के लिए समान अर्थव्यवस्था प्राप्त कर सकते हैं? कार्ल हेविट ने अपने अभिनेताओं के मॉडल के साथ इस चुनौती का जवाब बहुत पहले दे दिया था; उन्होंने घोषणा की कि एक मूल्य, मूल्यों पर एक संचालिका, और एक प्रक्रिया सभी एक ही प्रकार की होनी चाहिए: एक अभिनेता।
<blockquote>अब, शुद्ध लैम्ब्डा-कैलकुलस को केवल दो प्रकार की चीज़ों से बनाया गया है: टर्म्स और वेरिएबल्स। क्या हम एक प्रक्रिया कलन के लिए समान अर्थव्यवस्था प्राप्त कर सकते हैं? कार्ल हेविट ने अपने अभिनेताओं के मॉडल के साथ इस चुनौती का जवाब बहुत पहले दे दिया था; उन्होंने घोषणा की कि एक मूल्य, मूल्यों पर एक संचालिका, और एक प्रक्रिया सभी एक ही प्रकार की होनी चाहिए: एक ऐक्टर।
इस लक्ष्य ने मुझे प्रभावित किया, क्योंकि यह एकरूपता और अभिव्यक्ति की पूर्णता का तात्पर्य है ... लेकिन इससे पहले कि मैं देख पाता कि बीजगणितीय कलन के संदर्भ में लक्ष्य कैसे प्राप्त किया जाए ...
इस लक्ष्य ने मुझे प्रभावित किया, क्योंकि यह एकरूपता और अभिव्यक्ति की पूर्णता का तात्पर्य है ... लेकिन इससे पहले कि मैं देख पाता कि बीजगणितीय कलन के संदर्भ में लक्ष्य कैसे प्राप्त किया जाए ...
इसलिए, हेविट की भावना में, हमारा पहला कदम यह मांग करना है कि सभी चीजें जो शब्दों से निरूपित हों या नामों से एक्सेस की गई हों - मान, रजिस्टर, ऑपरेटर, प्रक्रियाएं, वस्तुएं - सभी एक ही तरह की हों; वे सभी प्रक्रियाएं होनी चाहिए।</blockquote>
इसलिए, हेविट की भावना में, हमारा पहला कदम यह मांग करना है कि सभी चीजें जो शब्दों से निरूपित हों या नामों से एक्सेस की गई हों - मान, रजिस्टर, ऑपरेटर, प्रक्रियाएं, वस्तुएं - सभी एक ही तरह की हों; वे सभी प्रक्रियाएं होनी चाहिए।</blockquote>


=== अभ्यास ===
=== अभ्यास ===
व्यावसायिक अभ्यास पर अभिनेता मॉडल का व्यापक प्रभाव पड़ा है। उदाहरण के लिए, ट्विटर ने स्केलेबिलिटी के लिए अभिनेताओं का इस्तेमाल किया है।<ref>{{cite web |url=https://waimingmok.wordpress.com/2009/06/27/how-twitter-is-scaling/ |title=How Twitter Is Scaling « Waiming Mok's Blog |publisher=Waimingmok.wordpress.com |date=2009-06-27 |access-date=2012-12-02 |archive-date=2021-02-05 |archive-url=https://web.archive.org/web/20210205000818/https://waimingmok.wordpress.com/2009/06/27/how-twitter-is-scaling/ |url-status=live }}</ref> साथ ही, Microsoft ने अपने एसिंक्रोनस एजेंट्स लाइब्रेरी के विकास में अभिनेता मॉडल का उपयोग किया है।<ref>"[https://msdn.microsoft.com/magazine/623b6c0f-c229-4fcd-8a9d-a5ef24c60db9 Actor-Based Programming with the Asynchronous Agents Library] {{Webarchive|url=https://web.archive.org/web/20170831090637/https://msdn.microsoft.com/magazine/623b6c0f-c229-4fcd-8a9d-a5ef24c60db9 |date=2017-08-31 }}" MSDN September 2010.</ref> नीचे अभिनेता पुस्तकालयों और ढांचे अनुभाग में सूचीबद्ध कई अन्य अभिनेता पुस्तकालय हैं।
व्यावसायिक अभ्यास पर ऐक्टर मॉडल का व्यापक प्रभाव पड़ा है। उदाहरण के लिए, ट्विटर ने स्केलेबिलिटी के लिए अभिनेताओं का इस्तेमाल किया है।<ref>{{cite web |url=https://waimingmok.wordpress.com/2009/06/27/how-twitter-is-scaling/ |title=How Twitter Is Scaling « Waiming Mok's Blog |publisher=Waimingmok.wordpress.com |date=2009-06-27 |access-date=2012-12-02 |archive-date=2021-02-05 |archive-url=https://web.archive.org/web/20210205000818/https://waimingmok.wordpress.com/2009/06/27/how-twitter-is-scaling/ |url-status=live }}</ref> साथ ही, Microsoft ने अपने एसिंक्रोनस एजेंट्स लाइब्रेरी के विकास में ऐक्टर मॉडल का उपयोग किया है।<ref>"[https://msdn.microsoft.com/magazine/623b6c0f-c229-4fcd-8a9d-a5ef24c60db9 Actor-Based Programming with the Asynchronous Agents Library] {{Webarchive|url=https://web.archive.org/web/20170831090637/https://msdn.microsoft.com/magazine/623b6c0f-c229-4fcd-8a9d-a5ef24c60db9 |date=2017-08-31 }}" MSDN September 2010.</ref> नीचे ऐक्टर पुस्तकालयों और ढांचे अनुभाग में सूचीबद्ध कई अन्य ऐक्टर पुस्तकालय हैं।


== संबोधित मुद्दे ==
== संबोधित मुद्दे ==
हेविट [2006] के अनुसार, अभिनेता मॉडल निम्नलिखित सहित कंप्यूटर और संचार वास्तुकला, [[समवर्ती प्रोग्रामिंग भाषा]]ओं और वेब सेवाओं में मुद्दों को संबोधित करता है:
हेविट [2006] के अनुसार, ऐक्टर मॉडल निम्नलिखित सहित कंप्यूटर और संचार वास्तुकला, [[समवर्ती प्रोग्रामिंग भाषा]]ओं और वेब सेवाओं में मुद्दों को संबोधित करता है:
* मापनीयता: स्थानीय और गैर-स्थानीय दोनों तरह से संगामिति को बढ़ाने की चुनौती।
* मापनीयता: स्थानीय और गैर-स्थानीय दोनों तरह से संगामिति को बढ़ाने की चुनौती।
* [[स्थान पारदर्शिता]]: स्थानीय और गैर-स्थानीय संगामिति के बीच की खाई को पाटना। पारदर्शिता वर्तमान में एक विवादास्पद मुद्दा है। कुछ शोधकर्ता {{Who|date=June 2010}} ने समवर्ती प्रोग्रामिंग भाषाओं (जैसे, जावा (प्रोग्रामिंग भाषा) और सी शार्प (प्रोग्रामिंग भाषा)|सी#) का उपयोग करते हुए स्थानीय संगामिति के बीच वेब सेवाओं के लिए SOAP का उपयोग करके गैर-स्थानीय संगामिति के बीच सख्त अलगाव की वकालत की है। सख्त अलगाव पारदर्शिता की कमी पैदा करता है जो समस्याओं का कारण बनता है जब वेब सेवाओं के लिए स्थानीय और गैर-स्थानीय पहुंच के बीच परिवर्तन करना वांछनीय/आवश्यक होता है (वितरित कंप्यूटिंग देखें)।
* [[स्थान पारदर्शिता]]: स्थानीय और गैर-स्थानीय संगामिति के बीच की खाई को पाटना। पारदर्शिता वर्तमान में एक विवादास्पद मुद्दा है। कुछ शोधकर्ता {{Who|date=June 2010}} ने समवर्ती प्रोग्रामिंग भाषाओं (जैसे, जावा (प्रोग्रामिंग भाषा) और सी शार्प (प्रोग्रामिंग भाषा)|सी#) का उपयोग करते हुए स्थानीय संगामिति के बीच वेब सेवाओं के लिए SOAP का उपयोग करके गैर-स्थानीय संगामिति के बीच सख्त अलगाव की वकालत की है। सख्त अलगाव पारदर्शिता की कमी पैदा करता है जो समस्याओं का कारण बनता है जब वेब सेवाओं के लिए स्थानीय और गैर-स्थानीय पहुंच के बीच परिवर्तन करना वांछनीय/आवश्यक होता है (वितरित कंप्यूटिंग देखें)।
* असंगति: असंगति आदर्श है क्योंकि मानव सूचना प्रणाली की अंतःक्रियाओं के बारे में सभी बहुत बड़ी ज्ञान प्रणालियाँ असंगत हैं। यह विसंगति बहुत बड़ी प्रणालियों (जैसे, माइक्रोसॉफ्ट विंडोज सॉफ्टवेयर, आदि) के प्रलेखन और विशिष्टताओं तक फैली हुई है, जो आंतरिक रूप से असंगत हैं।
* असंगति: असंगति आदर्श है क्योंकि मानव सूचना प्रणाली की अंतःक्रियाओं के बारे में सभी बहुत बड़ी ज्ञान प्रणालियाँ असंगत हैं। यह विसंगति बहुत बड़ी प्रणालियों (जैसे, माइक्रोसॉफ्ट विंडोज सॉफ्टवेयर, आदि) के प्रलेखन और विशिष्टताओं तक फैली हुई है, जो आंतरिक रूप से असंगत हैं।


अभिनेता मॉडल में पेश किए गए कई विचार अब इन्हीं कारणों [हेविट 2006बी 2007बी] के लिए [[मल्टी-एजेंट सिस्टम]] में भी आवेदन पा रहे हैं। मुख्य अंतर यह है कि एजेंट सिस्टम (अधिकांश परिभाषाओं में) अभिनेताओं पर अतिरिक्त प्रतिबंध लगाते हैं, आमतौर पर यह आवश्यक होता है कि वे प्रतिबद्धताओं और लक्ष्यों का उपयोग करें।
ऐक्टर मॉडल में पेश किए गए कई विचार अब इन्हीं कारणों [हेविट 2006बी 2007बी] के लिए [[मल्टी-एजेंट सिस्टम]] में भी आवेदन पा रहे हैं। मुख्य अंतर यह है कि एजेंट सिस्टम (अधिकांश परिभाषाओं में) अभिनेताओं पर अतिरिक्त प्रतिबंध लगाते हैं, सामान्य रूप से यह आवश्यक होता है कि वे प्रतिबद्धताओं और लक्ष्यों का उपयोग करें।


== अभिनेताओं के साथ प्रोग्रामिंग ==
== अभिनेताओं के साथ प्रोग्रामिंग ==
कई अलग-अलग प्रोग्रामिंग लैंग्वेज अभिनेता मॉडल या इसके कुछ बदलाव को नियोजित करती हैं। इन भाषाओं में शामिल हैं:
कई अलग-अलग प्रोग्रामिंग लैंग्वेज ऐक्टर मॉडल या इसके कुछ बदलाव को नियोजित करती हैं। इन भाषाओं में सम्मिलित हैं:


=== प्रारंभिक अभिनेता प्रोग्रामिंग भाषाएं ===
=== प्रारंभिक ऐक्टर प्रोग्रामिंग भाषाएं ===


* अधिनियम 1, 2 और 3<ref>{{cite journal
* अधिनियम 1, 2 और 3<ref>{{cite journal
Line 193: Line 193:




=== बाद में अभिनेता प्रोग्रामिंग भाषाएं ===
=== बाद में ऐक्टर प्रोग्रामिंग भाषाएं ===
{{div col|colwidth=20em}}
{{div col|colwidth=20em}}


Line 257: Line 257:


===एक्टर लाइब्रेरी और फ्रेमवर्क ===
===एक्टर लाइब्रेरी और फ्रेमवर्क ===
अभिनेता-शैली की प्रोग्रामिंग को उन भाषाओं में अनुमति देने के लिए अभिनेता पुस्तकालय या रूपरेखाएँ भी लागू की गई हैं जिनमें अभिनेता अंतर्निहित नहीं हैं। इनमें से कुछ रूपरेखाएँ हैं:
ऐक्टर-शैली की प्रोग्रामिंग को उन भाषाओं में अनुमति देने के लिए ऐक्टर पुस्तकालय या रूपरेखाएँ भी लागू की गई हैं जिनमें ऐक्टर अंतर्निहित नहीं हैं। इनमें से कुछ रूपरेखाएँ हैं:


{| class="wikitable sortable" style="font-size: small; text-align: center; width: auto; margin: auto auto;"
{| class="wikitable sortable" style="font-size: small; text-align: center; width: auto; margin: auto auto;"
|-
|-
! style="width: 13em;" | Name
! style="width: 13em;" | नाम
! Status
! स्थिति
! Latest release
! नवीनतम प्रकाशन
! [[Software license|License]]
! [[Software license|लाइसेंस]]
! Languages
! भाषा
|-
|-
| [http://xcraft.ch Xcraft Goblins]
| [http://xcraft.ch Xcraft Goblins]
| {{Active|style=font-size:smaller}}
| {{Active|style=font-size:smaller}}
| 2022-08-30
| 2022-08-30
| [[MIT License|MIT]]
| [[MIT License|एमआईटी]]
| JavaScript
| जावास्क्रिप्ट
|-
|-
|-
|-
Line 277: Line 277:
| {{Active|style=font-size:smaller}}
| {{Active|style=font-size:smaller}}
| 2022-11-30
| 2022-11-30
| [[Apache License|Apache 2.0]]
| [[Apache License|अपाचे 2.0]]
| Java
| जावा
|-
|-
| [https://github.com/DavidBM/acteur-rs Acteur]
| [https://github.com/DavidBM/acteur-rs Acteur]
| {{Active|style=font-size:smaller}}
| {{Active|style=font-size:smaller}}
| 2020-04-16<ref>{{cite web |url=https://crates.io/crates/acteur/0.9.1 |title=acteur - 0.9.1· David Bonet · Crates.io |publisher=crates.io |access-date=2020-04-16 |archive-date=2021-02-05 |archive-url=https://web.archive.org/web/20210205000304/https://crates.io/crates/acteur/0.9.1 |url-status=live }}</ref>
| 2020-04-16<ref>{{cite web |url=https://crates.io/crates/acteur/0.9.1 |title=acteur - 0.9.1· David Bonet · Crates.io |publisher=crates.io |access-date=2020-04-16 |archive-date=2021-02-05 |archive-url=https://web.archive.org/web/20210205000304/https://crates.io/crates/acteur/0.9.1 |url-status=live }}</ref>
|[[Apache License|Apache-2.0]] / [[MIT License|MIT]]
|[[Apache License|अपाचे-2.0]] / [[MIT License|एमआईटी]]
| Rust
| आरयूएसटी
|-
|-
| [https://github.com/bastion-rs/bastion Bastion] |[https://github.com/bastion-rs/bastion Bastion]
| [https://github.com/bastion-rs/bastion Bastion] |[https://github.com/bastion-rs/bastion Bastion]
| {{Active|style=font-size:smaller}}
| {{Active|style=font-size:smaller}}
|2020-08-12<ref>{{Cite web|url=https://crates.io/crates/bastion|title=Bastion on Crates.io|last=Bulut|first=Mahmut|date=2019-12-15|website=Crates.io|access-date=2019-12-15|archive-date=2021-02-05|archive-url=https://web.archive.org/web/20210205004405/https://crates.io/crates/bastion|url-status=live}}</ref>
|2020-08-12<ref>{{Cite web|url=https://crates.io/crates/bastion|title=Bastion on Crates.io|last=Bulut|first=Mahmut|date=2019-12-15|website=Crates.io|access-date=2019-12-15|archive-date=2021-02-05|archive-url=https://web.archive.org/web/20210205004405/https://crates.io/crates/bastion|url-status=live}}</ref>
|[[MIT License|Apache-2.0 / MIT]]
|[[MIT License|अपाचे-2.0 / एमआईटी]]
|Rust
|आरयूएसटी
|-
|-
| [https://github.com/actix/actix Actix]
| [https://github.com/actix/actix Actix]
| {{Active|style=font-size:smaller}}
| {{Active|style=font-size:smaller}}
| 2020-09-11<ref>{{cite web|title=actix - 0.10.0· Rob Ede · Crates.io|url=https://crates.io/crates/actix/0.10.0|access-date=2021-02-28|publisher=crates.io|archive-date=2021-05-14|archive-url=https://web.archive.org/web/20210514071652/https://crates.io/crates/actix/0.10.0|url-status=live}}</ref>
| 2020-09-11<ref>{{cite web|title=actix - 0.10.0· Rob Ede · Crates.io|url=https://crates.io/crates/actix/0.10.0|access-date=2021-02-28|publisher=crates.io|archive-date=2021-05-14|archive-url=https://web.archive.org/web/20210514071652/https://crates.io/crates/actix/0.10.0|url-status=live}}</ref>
| [[MIT License|MIT]]
| [[MIT License|एमआईटी]]
| Rust
| आरयूएसटी
|-
|-
| [https://github.com/aojet/Aojet Aojet]
| [https://github.com/aojet/Aojet Aojet]
| {{Active|style=font-size:smaller}}
| {{Active|style=font-size:smaller}}
| 2016-10-17
| 2016-10-17
| [[MIT License|MIT]]
| [[MIT License|एमआईटी]]
| Swift
| एसडब्ल्यूआईएफटी
|-
|-
| [https://github.com/edescourtis/actor Actor]
| [https://github.com/edescourtis/actor Actor]
| {{Active|style=font-size:smaller}}
| {{Active|style=font-size:smaller}}
| 2017-03-09
| 2017-03-09
| [[MIT License|MIT]]
| [[MIT License|एमआईटी]]
| Java
| जावा
|-
|-
| [https://github.com/relvaner/actor4j-core Actor4j]
| [https://github.com/relvaner/actor4j-core Actor4j]
| {{Active|style=font-size:smaller}}
| {{Active|style=font-size:smaller}}
| 2020-01-31
| 2020-01-31
| [[Apache License|Apache 2.0]]
| [[Apache License|अपाचे 2.0]]
| Java
| जावा
|-
|-
| [https://github.com/zakgof/actr Actr]
| [https://github.com/zakgof/actr Actr]
| {{Active|style=font-size:smaller}}
| {{Active|style=font-size:smaller}}
| 2019-04-09<ref>{{cite web |url=https://github.com/zakgof/actr/releases |title=Releases · zakgof/actr · GitHub |publisher=Github.com |access-date=2019-04-16 |archive-date=2020-10-26 |archive-url=https://web.archive.org/web/20201026142401/https://github.com/zakgof/actr/releases |url-status=live }}</ref>
| 2019-04-09<ref>{{cite web |url=https://github.com/zakgof/actr/releases |title=Releases · zakgof/actr · GitHub |publisher=Github.com |access-date=2019-04-16 |archive-date=2020-10-26 |archive-url=https://web.archive.org/web/20201026142401/https://github.com/zakgof/actr/releases |url-status=live }}</ref>
| [[Apache License|Apache 2.0]]
| [[Apache License|अपाचे 2.0]]
| Java
| जावा
|-
|-
| [http://vertx.io Vert.x]
| [http://vertx.io Vert.x]
| {{Active|style=font-size:smaller}}
| {{Active|style=font-size:smaller}}
| 2018-02-13
| 2018-02-13
| [[Apache License|Apache 2.0]]
| [[Apache License|अपाचे 2.0]]
| Java, Groovy, Javascript, Ruby, Scala, Kotlin, Ceylon
| जावा, ग्रूवी, जावास्क्रिप्ट, रूबी, स्काला, कोटलिन, सीलोन
|-
|-
| [https://archive.codeplex.com/?p=actorfx ActorFx]
| [https://archive.codeplex.com/?p=actorfx ActorFx]
| {{no|Inactive|style=font-size:smaller}}
| {{no|Inactive|style=font-size:smaller}}
| 2013-11-13
| 2013-11-13
| [[Apache License|Apache 2.0]]
| [[Apache License|अपाचे 2.0]]
| .NET
| .एनईटी
|-
|-
| [[Akka (toolkit)]]
| [[Akka (toolkit)]]
| {{Active|style=font-size:smaller}}
| {{Active|style=font-size:smaller}}
| 2022-09-06<ref>{{cite web|url=https://akka.io/blog/news/2022/09/06/akka-2.6.20-released|title=Akka 2.6.20 Released · Akka|publisher=Akka|date=2022-09-06|access-date=2022-09-24|archive-date=2022-09-24|archive-url=https://web.archive.org/web/20220924184226/https://akka.io/blog/news/2022/09/06/akka-2.6.20-released|url-status=live}}</ref>
| 2022-09-06<ref>{{cite web|url=https://akka.io/blog/news/2022/09/06/akka-2.6.20-released|title=Akka 2.6.20 Released · Akka|publisher=Akka|date=2022-09-06|access-date=2022-09-24|archive-date=2022-09-24|archive-url=https://web.archive.org/web/20220924184226/https://akka.io/blog/news/2022/09/06/akka-2.6.20-released|url-status=live}}</ref>
| Commercial<ref>{{cite web | url=https://www.lightbend.com/akka/license-faq | title=Akka License FAQ &#124; @lightbend | access-date=2022-09-24 | archive-date=2022-09-22 | archive-url=https://web.archive.org/web/20220922095902/https://www.lightbend.com/akka/license-faq | url-status=live }}</ref> (from 2.7.0, [[Apache License|Apache 2.0]] up to 2.6.20)
| व्यवसायिक<ref>{{cite web | url=https://www.lightbend.com/akka/license-faq | title=Akka License FAQ &#124; @lightbend | access-date=2022-09-24 | archive-date=2022-09-22 | archive-url=https://web.archive.org/web/20220922095902/https://www.lightbend.com/akka/license-faq | url-status=live }}</ref> ( 2.7.0 से, [[Apache License|अपाचे 2.0]] तक 2.6.20)
| Java and Scala
| जावा और स्काला
|-
|-
| [http://getakka.net Akka.NET]
| [http://getakka.net Akka.NET]
| {{Active|style=font-size:smaller}}
| {{Active|style=font-size:smaller}}
| 2020-08-20<ref>Akka.NET v1.4.10 Stable Release {{Citation|title=GitHub - akkadotnet/akka.net: Port of Akka actors for .NET.|date=2020-10-01|url=https://github.com/akkadotnet/akka.net|publisher=Akka.NET|access-date=2020-10-01|archive-date=2021-02-24|archive-url=https://web.archive.org/web/20210224183816/https://github.com/akkadotnet/akka.net|url-status=live}}</ref>
| 2020-08-20<ref>Akka.NET v1.4.10 Stable Release {{Citation|title=GitHub - akkadotnet/akka.net: Port of Akka actors for .NET.|date=2020-10-01|url=https://github.com/akkadotnet/akka.net|publisher=Akka.NET|access-date=2020-10-01|archive-date=2021-02-24|archive-url=https://web.archive.org/web/20210224183816/https://github.com/akkadotnet/akka.net|url-status=live}}</ref>
| [[Apache License|Apache 2.0]]
| [[Apache License|अपाचे 2.0]]
| .NET
| .नेट
|-
|-
| [https://dapr.io/ Dapr]
| [https://dapr.io/ Dapr]
| {{Active|style=font-size:smaller}}
| {{Active|style=font-size:smaller}}
| 2019-10-16
| 2019-10-16
| [[Apache License|Apache 2.0]]
| [[Apache License|अपाचे 2.0]]
| Java, .NET Core, Go, Javascript, Python, Rust and C++
| जावा, .नेट कोर, जाओ, जावास्क्रिप्ट, पायथन, आरयूएसटी और C++
|-
|-
| [https://github.com/ddobric/dotnetactors DOTNETACTORS]
| [https://github.com/ddobric/dotnetactors DOTNETACTORS]
| {{Active|style=font-size:smaller}}
| {{Active|style=font-size:smaller}}
| 2021-06-14
| 2021-06-14
| [[License|MIT]]
| [[License|एमआईटी]]
| .NET, C#, Azure Service Bus
| .नेट, C#, एज़्योर सर्विस बस
|-
|-
| [https://github.com/steforster/Remact.Net Remact.Net]
| [https://github.com/steforster/Remact.Net Remact.Net]
| {{no|Inactive|style=font-size:smaller}}
| {{no|Inactive|style=font-size:smaller}}
| 2016-06-26
| 2016-06-26
| [[MIT License|MIT]]
| [[MIT License|एमआईटी]]
| .NET, Javascript
| .नेट, जावास्क्रिप्ट
|-
|-
| [https://web.archive.org/web/20100725024213/http://www.ateji.com/px/ Ateji PX]
| [https://web.archive.org/web/20100725024213/http://www.ateji.com/px/ Ateji PX]
Line 368: Line 368:
| ?
| ?
| ?
| ?
| Java
| जावा
|-
|-
| [http://czmq.zeromq.org/manual:zactor czmq]
| [http://czmq.zeromq.org/manual:zactor czmq]
Line 379: Line 379:
| {{Active|style=font-size:smaller}}
| {{Active|style=font-size:smaller}}
| same as F# (built-in core library)
| same as F# (built-in core library)
| [[Apache License]]
| [[Apache License|अपाचे लाइसेंस]]
| F#
| F#
|-
|-
Line 385: Line 385:
| {{Active|style=font-size:smaller}}
| {{Active|style=font-size:smaller}}
| 2010-02-04
| 2010-02-04
| [[GPL|GPL 3]]
| [[GPL|जीपीएल 3]]
| Java
| जावा
|-
|-
| [http://kilim.malhar.net/ Kilim]<ref>{{cite conference |last=Srinivasan |first=Sriram |author2=Alan Mycroft |title=Kilim: Isolation-Typed Actors for Java |url=http://www.malhar.net/sriram/kilim/kilim_ecoop08.pdf |book-title=European Conference on Object Oriented Programming ECOOP 2008 |year=2008 |location=Cyprus |access-date=2016-02-25 |archive-date=2020-10-28 |archive-url=https://web.archive.org/web/20201028145553/https://www.malhar.net/sriram/kilim/kilim_ecoop08.pdf |url-status=live }}</ref>
| [http://kilim.malhar.net/ Kilim]<ref>{{cite conference |last=Srinivasan |first=Sriram |author2=Alan Mycroft |title=Kilim: Isolation-Typed Actors for Java |url=http://www.malhar.net/sriram/kilim/kilim_ecoop08.pdf |book-title=European Conference on Object Oriented Programming ECOOP 2008 |year=2008 |location=Cyprus |access-date=2016-02-25 |archive-date=2020-10-28 |archive-url=https://web.archive.org/web/20201028145553/https://www.malhar.net/sriram/kilim/kilim_ecoop08.pdf |url-status=live }}</ref>
| {{Active|style=font-size:smaller}}
| {{Active|style=font-size:smaller}}
| 2018-11-09<ref>{{cite web|url=https://github.com/kilim/kilim/releases|title=Releases · kilim/kilim · GitHub|publisher=Github.com|access-date=2019-06-03|archive-date=2020-10-16|archive-url=https://web.archive.org/web/20201016013355/https://github.com/kilim/kilim/releases|url-status=live}}</ref>
| 2018-11-09<ref>{{cite web|url=https://github.com/kilim/kilim/releases|title=Releases · kilim/kilim · GitHub|publisher=Github.com|access-date=2019-06-03|archive-date=2020-10-16|archive-url=https://web.archive.org/web/20201016013355/https://github.com/kilim/kilim/releases|url-status=live}}</ref>
| [[MIT License|MIT]]
| [[MIT License|एमआईटी]]
| Java
| जावा
|-
|-
| ActorFoundry (based on Kilim)
| ActorFoundry (based on Kilim)
Line 398: Line 398:
| 2008-12-28
| 2008-12-28
| ?
| ?
| Java
| जावा
|-
|-
| [https://github.com/stevedekorte/ActorKit ActorKit]
| [https://github.com/stevedekorte/ActorKit ActorKit]
| {{Active|style=font-size:smaller}}
| {{Active|style=font-size:smaller}}
| 2011-09-13<ref>{{cite web|url=https://github.com/stevedekorte/ActorKit/commits/master |title=Commit History · stevedekorte/ActorKit · GitHub |publisher=Github.com |access-date=2016-02-25}}</ref>
| 2011-09-13<ref>{{cite web|url=https://github.com/stevedekorte/ActorKit/commits/master |title=Commit History · stevedekorte/ActorKit · GitHub |publisher=Github.com |access-date=2016-02-25}}</ref>
| [[BSD]]
| [[BSD|बीएसडी]]
| Objective-C
| ऑब्जेक्टिव-C
|-
|-
| [https://archive.today/20130615053932/http://haskell-distributed.github.com/wiki.html Cloud Haskell]
| [https://archive.today/20130615053932/http://haskell-distributed.github.com/wiki.html Cloud Haskell]
| {{Active|style=font-size:smaller}}
| {{Active|style=font-size:smaller}}
| 2015-06-17<ref>{{cite web |url=https://github.com/haskell-distributed/distributed-process/commits/master |title=Commit History · haskell-distributed/distributed-process · GitHub |publisher=Github.com |access-date=2012-12-02 |archive-date=2017-03-24 |archive-url=https://web.archive.org/web/20170324095844/https://github.com/haskell-distributed/distributed-process/commits/master |url-status=live }}</ref>
| 2015-06-17<ref>{{cite web |url=https://github.com/haskell-distributed/distributed-process/commits/master |title=Commit History · haskell-distributed/distributed-process · GitHub |publisher=Github.com |access-date=2012-12-02 |archive-date=2017-03-24 |archive-url=https://web.archive.org/web/20170324095844/https://github.com/haskell-distributed/distributed-process/commits/master |url-status=live }}</ref>
| [[BSD]]
| [[BSD|बीएसडी]]
| Haskell
| हास्केल
|-
|-
| [http://cloudi.org CloudI]
| [http://cloudi.org CloudI]
| {{Active|style=font-size:smaller}}
| {{Active|style=font-size:smaller}}
| 2021-05-27<ref>{{cite web |url=https://github.com/CloudI/CloudI/releases |title=Releases · CloudI/CloudI · GitHub |publisher=Github.com |access-date=2021-06-21 |archive-date=2020-09-14 |archive-url=https://web.archive.org/web/20200914044804/https://github.com/CloudI/CloudI/releases |url-status=live }}</ref>
| 2021-05-27<ref>{{cite web |url=https://github.com/CloudI/CloudI/releases |title=Releases · CloudI/CloudI · GitHub |publisher=Github.com |access-date=2021-06-21 |archive-date=2020-09-14 |archive-url=https://web.archive.org/web/20200914044804/https://github.com/CloudI/CloudI/releases |url-status=live }}</ref>
|[[MIT License|MIT]]
|[[MIT License|एमआईटी]]
| ATS, C/C++, Elixir/Erlang/LFE, Go, Haskell, Java, Javascript, OCaml, Perl, PHP, Python, Ruby
| एटीएस, C/C++, एलिक्सिर/एरलैंग/एलएफई, गो, हास्केल, जावा, जावास्क्रिप्ट, ओकैमल, पर्ल, पीएचपी, पायथन, रूबी
|-
|-
| [https://wiki.gnome.org/Projects/Clutter Clutter]
| [https://wiki.gnome.org/Projects/Clutter Clutter]
| {{Active|style=font-size:smaller}}
| {{Active|style=font-size:smaller}}
| 2017-05-12<ref>{{cite web |url=https://gitlab.gnome.org/GNOME/clutter/tags |title=Tags · GNOME/clutter · GitLab |publisher=gitlab.gnome.org |access-date=2019-06-03 |archive-date=2019-06-03 |archive-url=https://web.archive.org/web/20190603183830/https://gitlab.gnome.org/GNOME/clutter/tags |url-status=live }}</ref>
| 2017-05-12<ref>{{cite web |url=https://gitlab.gnome.org/GNOME/clutter/tags |title=Tags · GNOME/clutter · GitLab |publisher=gitlab.gnome.org |access-date=2019-06-03 |archive-date=2019-06-03 |archive-url=https://web.archive.org/web/20190603183830/https://gitlab.gnome.org/GNOME/clutter/tags |url-status=live }}</ref>
| [[LGPL| LGPL 2.1]]
| [[LGPL| एलजीपीएल 2.1]]
| C, C++ (cluttermm), Python (pyclutter), Perl (perl-Clutter)
| C, C++ (क्लटरएमएम), पायथन (पाइक्लटर), पर्ल (पर्ल-क्लटर)
|-
|-
| [https://code.google.com/p/n-act/ NAct]
| [https://code.google.com/p/n-act/ NAct]
| {{no|Inactive|style=font-size:smaller}}
| {{no|Inactive|style=font-size:smaller}}
| 2012-02-28
| 2012-02-28
| [[LGPL| LGPL 3.0]]
| [[LGPL| एलजीपीएल 3.0]]
| .NET
| .नेट
|-
|-
| [https://nact.io/ Nact] {{Webarchive|url=https://web.archive.org/web/20210205004409/https://nact.io/ |date=2021-02-05 }}
| [https://nact.io/ Nact] {{Webarchive|url=https://web.archive.org/web/20210205004409/https://nact.io/ |date=2021-02-05 }}
| {{Active|style=font-size:smaller}}
| {{Active|style=font-size:smaller}}
| 2018-06-06<ref>{{cite web|url=https://github.com/ncthbrt/nact/releases|title=Releases · ncthbrt/nact · GitHub|website=[[GitHub]]|access-date=2019-06-03|archive-date=2020-11-27|archive-url=https://web.archive.org/web/20201127021215/https://github.com/ncthbrt/nact/releases|url-status=live}}</ref>
| 2018-06-06<ref>{{cite web|url=https://github.com/ncthbrt/nact/releases|title=Releases · ncthbrt/nact · GitHub|website=[[GitHub]]|access-date=2019-06-03|archive-date=2020-11-27|archive-url=https://web.archive.org/web/20201127021215/https://github.com/ncthbrt/nact/releases|url-status=live}}</ref>
| [[Apache License|Apache 2.0]]
| [[Apache License|अपाचे 2.0]]
| JavaScript/ReasonML
| जावास्क्रिप्ट/रीजनएमएल
|-
|-
| [https://code.google.com/p/retlang/ Retlang]
| [https://code.google.com/p/retlang/ Retlang]
| {{no|Inactive|style=font-size:smaller}}
| {{no|Inactive|style=font-size:smaller}}
| 2011-05-18<ref>{{cite web |url=https://code.google.com/p/retlang/source/list |title=Changes - retlang - Message based concurrency in .NET - Google Project Hosting |access-date=2016-02-25 |archive-date=2015-11-24 |archive-url=https://web.archive.org/web/20151124094146/http://code.google.com/p/retlang/source/list |url-status=live }}</ref>
| 2011-05-18<ref>{{cite web |url=https://code.google.com/p/retlang/source/list |title=Changes - retlang - Message based concurrency in .NET - Google Project Hosting |access-date=2016-02-25 |archive-date=2015-11-24 |archive-url=https://web.archive.org/web/20151124094146/http://code.google.com/p/retlang/source/list |url-status=live }}</ref>
| [[BSD License|New BSD]]
| [[BSD License|नया बीएसडी]]
| .NET
| .नेट
|-
|-
| [https://web.archive.org/web/20140808051834/http://jactorconsulting.com/product/jactor/ JActor]
| [https://web.archive.org/web/20140808051834/http://jactorconsulting.com/product/jactor/ JActor]
| {{no|Inactive|style=font-size:smaller}}
| {{no|Inactive|style=font-size:smaller}}
| 2013-01-22
| 2013-01-22
| [[LGPL]]
| [[LGPL|एलजीपीएल]]
| Java
| जावा
|-
|-
| [https://code.google.com/p/jetlang/ Jetlang]
| [https://code.google.com/p/jetlang/ Jetlang]
| {{Active|style=font-size:smaller}}
| {{Active|style=font-size:smaller}}
| 2013-05-30<ref>{{cite web |url=https://code.google.com/p/jetlang/downloads/detail?name=jetlang-0.2.9-bin.zip&can=2&q= |title=jetlang-0.2.9-bin.zip - jetlang - jetlang-0.2.9-bin.zip - Message based concurrency for Java - Google Project Hosting |date=2012-02-14 |access-date=2016-02-25 |archive-date=2016-01-14 |archive-url=https://web.archive.org/web/20160114205235/https://code.google.com/p/jetlang/downloads/detail?name=jetlang-0.2.9-bin.zip&can=2&q= |url-status=live }}</ref>
| 2013-05-30<ref>{{cite web |url=https://code.google.com/p/jetlang/downloads/detail?name=jetlang-0.2.9-bin.zip&can=2&q= |title=jetlang-0.2.9-bin.zip - jetlang - jetlang-0.2.9-bin.zip - Message based concurrency for Java - Google Project Hosting |date=2012-02-14 |access-date=2016-02-25 |archive-date=2016-01-14 |archive-url=https://web.archive.org/web/20160114205235/https://code.google.com/p/jetlang/downloads/detail?name=jetlang-0.2.9-bin.zip&can=2&q= |url-status=live }}</ref>
| [[BSD License|New BSD]]
| [[BSD License|नया बीएसडी]]
| Java
| जावा
|-
|-
| [https://code.google.com/p/haskellactor/ Haskell-Actor]
| [https://code.google.com/p/haskellactor/ Haskell-Actor]
| {{dunno|Active?}}
| {{dunno|Active?}}
| 2008
| 2008
| [[BSD License|New BSD]]
| [[BSD License|नया बीएसडी]]
| Haskell
| हास्केल
|-
|-
| [http://gpars.org/ GPars]
| [http://gpars.org/ GPars]
| {{Active|style=font-size:smaller}}
| {{Active|style=font-size:smaller}}
| 2014-05-09<ref>{{cite web |url=https://github.com/GPars/GPars/releases |title=GPars Releases |publisher=GitHub |access-date=2016-02-25 |archive-date=2020-09-04 |archive-url=https://web.archive.org/web/20200904211029/https://github.com/GPars/GPars/releases |url-status=live }}</ref>
| 2014-05-09<ref>{{cite web |url=https://github.com/GPars/GPars/releases |title=GPars Releases |publisher=GitHub |access-date=2016-02-25 |archive-date=2020-09-04 |archive-url=https://web.archive.org/web/20200904211029/https://github.com/GPars/GPars/releases |url-status=live }}</ref>
| [[Apache License|Apache 2.0]]
| [[Apache License|अपाचे 2.0]]
| Groovy
| ग्रूवी
|-
|-
| [https://www.oosmos.com/ OOSMOS]
| [https://www.oosmos.com/ OOSMOS]
| {{Active|style=font-size:smaller}}
| {{Active|style=font-size:smaller}}
| 2019-05-09<ref>{{cite web|url=https://github.com/oosmos/oosmos/releases|title=Releases · oosmos/oosmos · GitHub|publisher=GitHub|access-date=2019-06-03|archive-date=2020-11-13|archive-url=https://web.archive.org/web/20201113052931/https://github.com/oosmos/oosmos/releases|url-status=live}}</ref>
| 2019-05-09<ref>{{cite web|url=https://github.com/oosmos/oosmos/releases|title=Releases · oosmos/oosmos · GitHub|publisher=GitHub|access-date=2019-06-03|archive-date=2020-11-13|archive-url=https://web.archive.org/web/20201113052931/https://github.com/oosmos/oosmos/releases|url-status=live}}</ref>
| [[GPL|GPL 2.0]] and commercial (dual licensing)
| [[GPL|जीपीएल 2.0]] और व्यावसायिक (दोहरी लाइसेंसिंग)
| C. C++ friendly
| C. C++ फ्रेंडली
|-
|-
| [http://www.cs.iastate.edu/~panini/ Panini]
| [http://www.cs.iastate.edu/~panini/ Panini]
Line 476: Line 476:
| 2014-05-22
| 2014-05-22
| [[Mozilla Public License|MPL 1.1]]
| [[Mozilla Public License|MPL 1.1]]
| Programming Language by itself
| प्रोग्रामिंग भाषा स्वयं में
|-
|-
| [https://web.archive.org/web/20100616003529/http://osl.cs.uiuc.edu/parley/ PARLEY]
| [https://web.archive.org/web/20100616003529/http://osl.cs.uiuc.edu/parley/ PARLEY]
| {{dunno|Active?}}
| {{dunno|Active?}}
| 2007-22-07
| 2007-22-07
| [[GPL|GPL 2.1]]
| [[GPL|जीपीएल 2.1]]
| Python
| पायथन
|-
|-
| [https://github.com/offbynull/peernetic Peernetic]
| [https://github.com/offbynull/peernetic Peernetic]
| {{Active|style=font-size:smaller}}
| {{Active|style=font-size:smaller}}
| 2007-06-29
| 2007-06-29
| [[LGPL|LGPL 3.0]]
| [[LGPL|एलजीपीएल 3.0]]
| Java
| जावा
|-
|-
| [http://picolabs.io/ Picos]
| [http://picolabs.io/ Picos]
| {{Active|style=font-size:smaller}}
| {{Active|style=font-size:smaller}}
| 2020-02-04
| 2020-02-04
| [[MIT License|MIT]]
| [[MIT License|एमआईटी]]
| KRL
| केआरएल
|-
|-
| [http://doc.postsharp.net/actor PostSharp]
| [http://doc.postsharp.net/actor PostSharp]
| {{Active|style=font-size:smaller}}
| {{Active|style=font-size:smaller}}
| 2014-09-24
| 2014-09-24
| Commercial / [[Freemium]]
| व्यवसायिक / फ्रीमियम
| .NET
| .नेट
|-
|-
| [https://pypi.org/project/pulsar/ Pulsar]
| [https://pypi.org/project/pulsar/ Pulsar]
| {{Active|style=font-size:smaller}}
| {{Active|style=font-size:smaller}}
| 2016-07-09<ref>{{cite web|url=http://pythonhosted.org/pulsar/design.html#actors|title=Pulsar Design and Actors|url-status=dead|archive-url=https://web.archive.org/web/20150704114118/http://pythonhosted.org/pulsar/design.html#actors|archive-date=2015-07-04}}</ref>
| 2016-07-09<ref>{{cite web|url=http://pythonhosted.org/pulsar/design.html#actors|title=Pulsar Design and Actors|url-status=dead|archive-url=https://web.archive.org/web/20150704114118/http://pythonhosted.org/pulsar/design.html#actors|archive-date=2015-07-04}}</ref>
| [[BSD License|New BSD]]
| [[BSD License|नया बीएसडी]]
| Python
| पायथन
|-
|-
| [https://github.com/puniverse/pulsar Pulsar]
| [https://github.com/puniverse/pulsar Pulsar]
| {{Active|style=font-size:smaller}}
| {{Active|style=font-size:smaller}}
| 2016-02-18<ref>{{cite web|url=https://puniverse.github.io/pulsar/manual/core.html |title=Pulsar documentation |url-status=dead |archive-url=https://web.archive.org/web/20130726095621/http://puniverse.github.io/pulsar/manual/core.html |archive-date=2013-07-26}}</ref>
| 2016-02-18<ref>{{cite web|url=https://puniverse.github.io/pulsar/manual/core.html |title=Pulsar documentation |url-status=dead |archive-url=https://web.archive.org/web/20130726095621/http://puniverse.github.io/pulsar/manual/core.html |archive-date=2013-07-26}}</ref>
| [[LGPL]]/[[Eclipse Public License|Eclipse]]
| [[LGPL|एलजीपीएल]]/[[Eclipse Public License|Eclipse]]
| Clojure
| क्लोजर
|-
|-
| [http://pykka.readthedocs.org/en/latest/index.html Pykka]
| [http://pykka.readthedocs.org/en/latest/index.html Pykka]
| {{Active|style=font-size:smaller}}
| {{Active|style=font-size:smaller}}
| 2019-05-07<ref>{{cite web |url=https://www.pykka.org/en/latest/changes/#v2-0-0-2019-05-07 |title=Changes – Pykka 2.0.0 documentation |publisher=pykka.org |access-date=2019-06-03 |archive-date=2021-02-05 |archive-url=https://web.archive.org/web/20210205001043/https://www.pykka.org/en/latest/changes/#v2-0-0-2019-05-07 |url-status=live }}</ref>
| 2019-05-07<ref>{{cite web |url=https://www.pykka.org/en/latest/changes/#v2-0-0-2019-05-07 |title=Changes – Pykka 2.0.0 documentation |publisher=pykka.org |access-date=2019-06-03 |archive-date=2021-02-05 |archive-url=https://web.archive.org/web/20210205001043/https://www.pykka.org/en/latest/changes/#v2-0-0-2019-05-07 |url-status=live }}</ref>
| [[Apache License|Apache 2.0]]
| [[Apache License|अपाचे 2.0]]
| Python
| पायथन
|-
|-
| [https://code.google.com/p/termite/ Termite Scheme]
| [https://code.google.com/p/termite/ Termite Scheme]
| {{dunno|Active?}}
| {{dunno|Active?}}
| 2009-05-21
| 2009-05-21
| [[LGPL]]
| [[LGPL|एलजीपीएल]]
| Scheme (Gambit implementation)
| योजना (गैम्बिट कार्यान्वयन)
|-
|-
| [https://web.archive.org/web/20140810090245/http://www.theron-library.com/ Theron]
| [https://web.archive.org/web/20140810090245/http://www.theron-library.com/ Theron]
| {{no|Inactive|style=font-size:smaller}}<ref>{{cite web |url=http://www.ashtonmason.net/theron/ |title=Theron – Ashton Mason |access-date=2018-08-29 |archive-date=2019-03-31 |archive-url=https://web.archive.org/web/20190331023110/http://www.ashtonmason.net/theron/ |url-status=live }}</ref>
| {{no|Inactive|style=font-size:smaller}}<ref>{{cite web |url=http://www.ashtonmason.net/theron/ |title=Theron – Ashton Mason |access-date=2018-08-29 |archive-date=2019-03-31 |archive-url=https://web.archive.org/web/20190331023110/http://www.ashtonmason.net/theron/ |url-status=live }}</ref>
| 2014-01-18<ref>{{cite web |url=http://www.theron-library.com/index.php?t=news |title=Theron - Version 6.00.02 released |publisher=Theron-library.com |access-date=2016-02-25 |archive-url=https://web.archive.org/web/20160316122155/http://www.theron-library.com/index.php?t=news |archive-date=2016-03-16 |url-status=dead}}</ref>
| 2014-01-18<ref>{{cite web |url=http://www.theron-library.com/index.php?t=news |title=Theron - Version 6.00.02 released |publisher=Theron-library.com |access-date=2016-02-25 |archive-url=https://web.archive.org/web/20160316122155/http://www.theron-library.com/index.php?t=news |archive-date=2016-03-16 |url-status=dead}}</ref>
| [[MIT License|MIT]]<ref>{{cite web |url=http://www.theron-library.com/index.php?t=page&p=license |title=Theron |publisher=Theron-library.com |access-date=2016-02-25 |archive-url=https://web.archive.org/web/20160304000109/http://www.theron-library.com/index.php?t=page&p=license |archive-date=2016-03-04 |url-status=dead}}</ref>
| [[MIT License|एमआईटी]]<ref>{{cite web |url=http://www.theron-library.com/index.php?t=page&p=license |title=Theron |publisher=Theron-library.com |access-date=2016-02-25 |archive-url=https://web.archive.org/web/20160304000109/http://www.theron-library.com/index.php?t=page&p=license |archive-date=2016-03-04 |url-status=dead}}</ref>
| C++
| C++
|-
|-
Line 535: Line 535:
| {{Active|style=font-size:smaller}}
| {{Active|style=font-size:smaller}}
| 2020-03-10
| 2020-03-10
| [[MIT License|MIT]]
| [[MIT License|एमआईटी]]
| [[Python (programming language)|Python]]
| [[Python (programming language)|पायथन]]
|-
|-
| [https://github.com/puniverse/quasar Quasar]
| [https://github.com/puniverse/quasar Quasar]
| {{Active|style=font-size:smaller}}
| {{Active|style=font-size:smaller}}
| 2018-11-02<ref>{{cite web|url=https://github.com/puniverse/quasar/releases|title=Releases · puniverse/quasar · GitHub|website=[[GitHub]]|access-date=2019-06-03|archive-date=2020-12-15|archive-url=https://web.archive.org/web/20201215084827/https://github.com/puniverse/quasar/releases|url-status=live}}</ref>
| 2018-11-02<ref>{{cite web|url=https://github.com/puniverse/quasar/releases|title=Releases · puniverse/quasar · GitHub|website=[[GitHub]]|access-date=2019-06-03|archive-date=2020-12-15|archive-url=https://web.archive.org/web/20201215084827/https://github.com/puniverse/quasar/releases|url-status=live}}</ref>
| [[LGPL]]/[[Eclipse Public License|Eclipse]]
| एलजीपीएल/ग्रहण
| Java
| जावा
|-
|-
| [https://code.google.com/p/libactor/ Libactor]
| [https://code.google.com/p/libactor/ Libactor]
| {{dunno|Active?}}
| {{dunno|Active?}}
| 2009
| 2009
| [[GPL| GPL 2.0]]
| [[GPL| जीपीएल 2.0]]
| C
| C
|-
|-
Line 553: Line 553:
| {{Active|style=font-size:smaller}}
| {{Active|style=font-size:smaller}}
| 2012-03-10<ref>{{cite web |url=https://code.google.com/p/actor-cpp/source/list |title=Changes - actor-cpp - An implementation of the actor model for C++ - Google Project Hosting |access-date=2012-12-02 |archive-date=2015-11-18 |archive-url=https://web.archive.org/web/20151118010906/http://code.google.com/p/actor-cpp/source/list |url-status=live }}</ref>
| 2012-03-10<ref>{{cite web |url=https://code.google.com/p/actor-cpp/source/list |title=Changes - actor-cpp - An implementation of the actor model for C++ - Google Project Hosting |access-date=2012-12-02 |archive-date=2015-11-18 |archive-url=https://web.archive.org/web/20151118010906/http://code.google.com/p/actor-cpp/source/list |url-status=live }}</ref>
| [[GPL|GPL 2.0]]
| [[GPL|जीपीएल 2.0]]
| C++
| C++
|-
|-
Line 559: Line 559:
| {{no|Inactive|style=font-size:smaller}}
| {{no|Inactive|style=font-size:smaller}}
| 2012-07-31<ref>{{cite web |url=https://git1-us-west.apache.org/repos/asf?p=incubator-s4.git |title=Commit History · s4/s4 · Apache |publisher=apache.org |access-date=2016-01-16 |archive-url=https://web.archive.org/web/20160306073515/https://git1-us-west.apache.org/repos/asf?p=incubator-s4.git |archive-date=2016-03-06 |url-status=dead }}</ref>
| 2012-07-31<ref>{{cite web |url=https://git1-us-west.apache.org/repos/asf?p=incubator-s4.git |title=Commit History · s4/s4 · Apache |publisher=apache.org |access-date=2016-01-16 |archive-url=https://web.archive.org/web/20160306073515/https://git1-us-west.apache.org/repos/asf?p=incubator-s4.git |archive-date=2016-03-06 |url-status=dead }}</ref>
| [[Apache License|Apache 2.0]]
| [[Apache License|अपाचे 2.0]]
| Java
| जावा
|-
|-
| [http://actor-framework.org/ C++ Actor Framework (CAF)]
| [http://actor-framework.org/ C++ Actor Framework (CAF)]
| {{Active|style=font-size:smaller}}
| {{Active|style=font-size:smaller}}
| 2020-02-08<ref>{{cite web |url=https://github.com/actor-framework/actor-framework/releases |title=Releases · actor-framework/actor-framework · GitHub |publisher=Github.com |access-date=2020-03-07 |archive-date=2021-03-26 |archive-url=https://web.archive.org/web/20210326101904/https://github.com/actor-framework/actor-framework/releases |url-status=live }}</ref>
| 2020-02-08<ref>{{cite web |url=https://github.com/actor-framework/actor-framework/releases |title=Releases · actor-framework/actor-framework · GitHub |publisher=Github.com |access-date=2020-03-07 |archive-date=2021-03-26 |archive-url=https://web.archive.org/web/20210326101904/https://github.com/actor-framework/actor-framework/releases |url-status=live }}</ref>
| [[Boost Software License|Boost Software License 1.0]] and [[BSD licenses|BSD 3-Clause]]
| बूस्ट सॉफ्टवेयर [[Boost Software License|लाइसेंस 1.0]] और [[BSD licenses|बीएसडी 3-क्लॉज]]
| C++11
| C++11
|-
|-
Line 571: Line 571:
| {{Active|style=font-size:smaller}}
| {{Active|style=font-size:smaller}}
| 2018-12-20<ref>{{cite web |url=http://rubygems.org/gems/celluloid |title=celluloid &#124; RubyGems.org &#124; your community gem host |publisher=RubyGems.org |access-date=2019-06-03 |archive-date=2020-09-29 |archive-url=https://web.archive.org/web/20200929070522/https://rubygems.org/gems/celluloid |url-status=live }}</ref>
| 2018-12-20<ref>{{cite web |url=http://rubygems.org/gems/celluloid |title=celluloid &#124; RubyGems.org &#124; your community gem host |publisher=RubyGems.org |access-date=2019-06-03 |archive-date=2020-09-29 |archive-url=https://web.archive.org/web/20200929070522/https://rubygems.org/gems/celluloid |url-status=live }}</ref>
| [[MIT License|MIT]]
| [[MIT License|एमआईटी]]
| Ruby
| रूबी
|-
|-
| [http://ni.com/actorframework LabVIEW Actor Framework]
| [http://ni.com/actorframework लैबव्यू Actor Framework]
| {{Active|style=font-size:smaller}}
| {{Active|style=font-size:smaller}}
| 2012-03-01<ref>{{cite web |url=https://decibel.ni.com/content/docs/DOC-18308 |title=Community: Actor Framework, LV 2011 revision (version 3.0.7) |publisher=Decibel.ni.com |date=2011-09-23 |access-date=2016-02-25 |archive-date=2016-10-13 |archive-url=https://web.archive.org/web/20161013085507/https://decibel.ni.com/content/docs/DOC-18308 |url-status=live }}</ref>
| 2012-03-01<ref>{{cite web |url=https://decibel.ni.com/content/docs/DOC-18308 |title=Community: Actor Framework, LV 2011 revision (version 3.0.7) |publisher=Decibel.ni.com |date=2011-09-23 |access-date=2016-02-25 |archive-date=2016-10-13 |archive-url=https://web.archive.org/web/20161013085507/https://decibel.ni.com/content/docs/DOC-18308 |url-status=live }}</ref>
| [http://www.ni.com/legal/license/ National Instruments SLA]
| [http://www.ni.com/legal/license/ राष्ट्रीय उपकरण एसएलए]
| LabVIEW
| लैबव्यू
|-
|-
|[https://lavag.org/files/file/220-messenger-library/ LabVIEW Messenger Library]
|[https://lavag.org/files/file/220-messenger-library/ लैबव्यू Messenger Library]
| {{Active|style=font-size:smaller}}
| {{Active|style=font-size:smaller}}
|2021-05-24
|2021-05-24
|BSD
|बीएसडी
|LabVIEW
|लैबव्यू
|-
|-
| [http://www.orbit.cloud Orbit]
| [http://www.orbit.cloud Orbit]
| {{Active|style=font-size:smaller}}
| {{Active|style=font-size:smaller}}
| 2019-05-28<ref>{{cite web|url=https://github.com/orbit/orbit/releases |title=Releases · orbit/orbit · GitHub|publisher=GitHub |access-date=2019-06-03}}</ref>
| 2019-05-28<ref>{{cite web|url=https://github.com/orbit/orbit/releases |title=Releases · orbit/orbit · GitHub|publisher=GitHub |access-date=2019-06-03}}</ref>
| [[BSD License|New BSD]]
| [[BSD License|नया बीएसडी]]
| Java
| जावा
|-
|-
| [[QP (framework)|QP frameworks for real-time embedded systems]]
| [[QP (framework)|QP frameworks for real-time embedded systems]]
| {{Active|style=font-size:smaller}}
| {{Active|style=font-size:smaller}}
| 2019-05-25<ref>{{cite web |url=https://sourceforge.net/projects/qpc/files/ |title=QP Real-Time Embedded Frameworks & Tools - Browse Files at |publisher=Sourceforge.net |access-date=2019-06-03 |archive-date=2021-02-24 |archive-url=https://web.archive.org/web/20210224154900/https://sourceforge.net/projects/qpc/files/ |url-status=live }}</ref>
| 2019-05-25<ref>{{cite web |url=https://sourceforge.net/projects/qpc/files/ |title=QP Real-Time Embedded Frameworks & Tools - Browse Files at |publisher=Sourceforge.net |access-date=2019-06-03 |archive-date=2021-02-24 |archive-url=https://web.archive.org/web/20210224154900/https://sourceforge.net/projects/qpc/files/ |url-status=live }}</ref>
| [[GPL|GPL 2.0]] and commercial (dual licensing)
| [[GPL|जीपीएल 2.0]]और व्यावसायिक (दोहरी लाइसेंसिंग)
| C and C++
| C और C++
|-
|-
| [https://github.com/3rdparty/libprocess libprocess]
| [https://github.com/3rdparty/libprocess libprocess]
| {{Active|style=font-size:smaller}}
| {{Active|style=font-size:smaller}}
| 2013-06-19
| 2013-06-19
| [[Apache License|Apache 2.0]]
| [[Apache License|अपाचे 2.0]]
| C++
| C++
|-
|-
Line 607: Line 607:
| {{Active|style=font-size:smaller}}
| {{Active|style=font-size:smaller}}
| 2021-12-28<ref>{{cite web |url=https://github.com/Stiffstream/sobjectizer/releases |title=Releases · Stiffstream/sobjectizer · GitHub |publisher=GitHub |access-date=2022-05-11 |archive-date=2020-10-19 |archive-url=https://web.archive.org/web/20201019174839/https://github.com/Stiffstream/sobjectizer/releases |url-status=live }}</ref>
| 2021-12-28<ref>{{cite web |url=https://github.com/Stiffstream/sobjectizer/releases |title=Releases · Stiffstream/sobjectizer · GitHub |publisher=GitHub |access-date=2022-05-11 |archive-date=2020-10-19 |archive-url=https://web.archive.org/web/20201019174839/https://github.com/Stiffstream/sobjectizer/releases |url-status=live }}</ref>
| [[BSD License|New BSD]]
| [[BSD License|बीएसडी]]
| C++17
| C++17
|-
|-
Line 613: Line 613:
| {{Active|style=font-size:smaller}}
| {{Active|style=font-size:smaller}}
| 2022-04-23<ref>{{cite web |url=https://github.com/basiliscos/cpp-rotor/releases |title=Releases · basiliscos/cpp-rotor· GitHub |publisher=GitHub |access-date=2022-05-17 |archive-date=2020-09-15 |archive-url=https://web.archive.org/web/20200915224347/https://github.com/basiliscos/cpp-rotor/releases |url-status=live }}</ref>
| 2022-04-23<ref>{{cite web |url=https://github.com/basiliscos/cpp-rotor/releases |title=Releases · basiliscos/cpp-rotor· GitHub |publisher=GitHub |access-date=2022-05-17 |archive-date=2020-09-15 |archive-url=https://web.archive.org/web/20200915224347/https://github.com/basiliscos/cpp-rotor/releases |url-status=live }}</ref>
| [[MIT License]]
| [[MIT License|एमआईटी लाइसेंस]]
| C++17
| C++17
|-
|-
Line 619: Line 619:
| {{Active|style=font-size:smaller}}
| {{Active|style=font-size:smaller}}
| 2022-08-15<ref>{{cite web |url=https://github.com/dotnet/orleans/releases |title=Releases · dotnet/orleans · GitHub |publisher=GitHub |access-date=2022-09-21 |archive-date=2020-12-04 |archive-url=https://web.archive.org/web/20201204021228/https://github.com/dotnet/orleans/releases |url-status=live }}</ref>
| 2022-08-15<ref>{{cite web |url=https://github.com/dotnet/orleans/releases |title=Releases · dotnet/orleans · GitHub |publisher=GitHub |access-date=2022-09-21 |archive-date=2020-12-04 |archive-url=https://web.archive.org/web/20201204021228/https://github.com/dotnet/orleans/releases |url-status=live }}</ref>
| [[MIT License]]
| [[MIT License|एमआईटी लाइसेंस]]
| C#/.NET
| C#/.नेट
|-
|-
| [https://github.com/cloudwu/skynet Skynet]
| [https://github.com/cloudwu/skynet Skynet]
| {{Active|style=font-size:smaller}}
| {{Active|style=font-size:smaller}}
| 2020-12-10
| 2020-12-10
| [[MIT License]]
| [[MIT License|एमआईटी लाइसेंस]]
| C/Lua
| C/Lua
|-
|-
Line 631: Line 631:
| {{Active|style=font-size:smaller}}
| {{Active|style=font-size:smaller}}
| 2016-06-14
| 2016-06-14
| [[BSD License]]
| [[BSD License|बीएसडी लाइसेंस]]
| Java/Scala
| जावा/स्काला
|-
|-
| [http://itgroup.ro/libagents libagents]
| [http://itgroup.ro/libagents libagents]
| {{Active|style=font-size:smaller}}
| {{Active|style=font-size:smaller}}
| 2020-03-08
| 2020-03-08
| [[Free software license]]
| [[Free software license|मुखट सॉफ्टवेयर लाइसेंस]]
| C++11
| C++11
|-
|-
Line 643: Line 643:
| {{Active|style=font-size:smaller}}
| {{Active|style=font-size:smaller}}
| 2021-01-05
| 2021-01-05
| [[Free software license]]
| [[Free software license|मुखट सॉफ्टवेयर लाइसेंस]]
| Go, C#, Python, JavaScript, Kotlin
| Go, C#, पायथन, जावास्क्रिप्ट, कोटलिन
|-
|-
| [https://www.functionaljava.org/ FunctionalJava] {{Webarchive|url=https://web.archive.org/web/20210422085450/https://www.functionaljava.org/ |date=2021-04-22 }}
| [https://www.functionaljava.org/ FunctionalJava] {{Webarchive|url=https://web.archive.org/web/20210422085450/https://www.functionaljava.org/ |date=2021-04-22 }}
| {{Active|style=font-size:smaller}}
| {{Active|style=font-size:smaller}}
| 2018-08-18<ref>{{cite web |url=https://github.com/functionaljava/functionaljava/releases |title=FunctionalJava releases |publisher=GitHub |access-date=2018-08-23 |archive-date=2021-01-15 |archive-url=https://web.archive.org/web/20210115210742/https://github.com/functionaljava/functionaljava/releases |url-status=live }}</ref>
| 2018-08-18<ref>{{cite web |url=https://github.com/functionaljava/functionaljava/releases |title=FunctionalJava releases |publisher=GitHub |access-date=2018-08-23 |archive-date=2021-01-15 |archive-url=https://web.archive.org/web/20210115210742/https://github.com/functionaljava/functionaljava/releases |url-status=live }}</ref>
| [[BSD licenses|BSD 3-Clause]]
| [[BSD licenses|बीएसडी 3-क्लॉज]]
| Java
| जावा
|-
|-
| [https://riker.rs/ Riker]
| [https://riker.rs/ Riker]
| {{Active|style=font-size:smaller}}
| {{Active|style=font-size:smaller}}
| 2019-01-04
| 2019-01-04
| [[MIT License]]
| [[MIT License|एमआईटी लाइसेंस]]
| Rust
| आरयूएसटी
|-
|-
|[https://github.com/untu/comedy Comedy]
|[https://github.com/untu/comedy Comedy]
|{{Active|style=font-size:smaller}}
|{{Active|style=font-size:smaller}}
|2019-03-09
|2019-03-09
|[[Eclipse Public License|EPL 1.0]]
|[[Eclipse Public License|ईपीएल 1.0]]
|JavaScript
|जावास्क्रिप्ट
|-
|-
|[https://github.com/vlingo/vlingo-actors VLINGO XOOM Actors]
|[https://github.com/vlingo/vlingo-actors VLINGO XOOM Actors]
|{{Active|style=font-size:smaller}}
|{{Active|style=font-size:smaller}}
|2023-02-15
|2023-02-15
|[[Mozilla Public License|Mozilla Public License 2.0]]
|मोज़िला पब्लिक [[Mozilla Public License|लाइसेंस 2.0]]
|Java, Kotlin, JVM languages, C# .NET
|जावा, कोटलिन, जेवीएम भाषाएं, C# .नेट
|-
|-
|[https://github.com/wasmcloud wasmCloud]
|[https://github.com/wasmcloud wasmCloud]
|{{Active|style=font-size:smaller}}
|{{Active|style=font-size:smaller}}
|2021-03-23
|2021-03-23
|[[Apache License|Apache 2.0]]
|अपाचे 2.0
|WebAssembly (Rust, TinyGo, Zig, AssemblyScript)
|वेब असेंबली (आरयूएसटी, टाइनीगो, ज़िग, असेंबलीस्क्रिप्ट)
|-
|-
|[https://github.com/ray-project/ray ray]
|
|{{Active|style=font-size:smaller}}
|{{Active|style=font-size:smaller}}
|2020-08-27
|2020-08-27
|[[Apache License|Apache 2.0]]
|[[Apache License|अपाचे 2.0]]
|Python
|पायथन
|-
|-
|[https://github.com/celery/cell cell]
|[https://github.com/celery/cell सेल]
|{{Active|style=font-size:smaller}}
|{{Active|style=font-size:smaller}}
|2012-08-02
|2012-08-02
|[[New BSD License]]
|नया [[New BSD License|बीएसडी लाइसेंस]]
|Python
|पायथन
|-
|-
|[https://github.com/vladopajic/go-actor go-actor]
|[https://github.com/vladopajic/go-actor गो-ऐक्टर]
|{{Active|style=font-size:smaller}}
|{{Active|style=font-size:smaller}}
|2022-08-16
|2022-08-16
|[[GPL 3.0]]
|[[GPL 3.0|जीपीएल 3.0]]
|Golang
|गोलांग


|-
|-
|[https://github.com/mdbergmann/cl-gserver Sento]
|[https://github.com/mdbergmann/cl-gserver सेंटो]
|{{Active|style=font-size:smaller}}
|{{Active|style=font-size:smaller}}
|2022-11-21
|2022-11-21
|[[Apache 2.0]]
|[[Apache 2.0|अपाचे 2.0]]
|Common Lisp
|सामान्य एलआईएसपी
|}
|}


Line 776: Line 776:


== बाहरी संबंध ==
== बाहरी संबंध ==
* [http://channel9.msdn.com/Shows/Going+Deep/Hewitt-Meijer-and-Szyperski-The-Actor-Model-everything-you-wanted-to-know-but-were-afraid-to-ask Hewitt, Meijer and Szyperski: The Actor Model (everything you wanted to know, but were afraid to ask)] Microsoft Channel 9. April 9, 2012. {{YouTube |id=7erJ1DV_Tlo}}
* [http://channel9.msdn.com/Shows/Going+Deep/Hewitt-Meijer-and-Szyperski-The-Actor-Model-everything-you-wanted-to-know-but-were-afraid-to-ask Hewitt, Meijer और Szyperski: The Actor Model (everything you wanted to know, but were afraid to ask)] Microsoft Channel 9. April 9, 2012. {{YouTube |id=7erJ1DV_Tlo}}
* [http://functionaljava.org/ Functional Java] {{Webarchive|url=https://web.archive.org/web/20110709025649/http://functionaljava.org/ |date=2011-07-09 }} – a Java library that includes an implementation of concurrent actors with code examples in standard Java and Java 7 BGGA style.
* [http://functionaljava.org/ Functional जावा] {{Webarchive|url=https://web.archive.org/web/20110709025649/http://functionaljava.org/ |date=2011-07-09 }} – a जावा library that includes an implementation of concurrent actors with code examples in standard जावा और जावा 7 BGGA style.
* [https://web.archive.org/web/20090124154231/http://osl.cs.uiuc.edu/af/ ActorFoundry] – a Java-based library for actor programming. The familiar Java syntax, an ant build file and a bunch of example make the entry barrier very low.
* [https://web.archive.org/web/20090124154231/http://osl.cs.uiuc.edu/af/ ActorFoundry] – a जावा-based library for actor programming. The familiar जावा syntax, an ant build file और a bunch of example make the entry barrier very low.
* [http://tristan.aubrey-jones.com/code/?project=third_year_project&dir=/ ActiveJava] – a prototype Java language extension for actor programming.
* [http://tristan.aubrey-jones.com/code/?project=third_year_project&dir=/ ActiveJava] – a prototype जावा language extension for actor programming.
* [http://akka.io Akka] – actor based library in Scala and Java, from [[Lightbend Inc.]]
* [http://akka.io Akka] – actor based library in Scala और जावा, from [[Lightbend Inc.]]
* [http://gpars.org/ GPars] – a concurrency library for Apache Groovy and Java
* [http://gpars.org/ GPars] – a concurrency library for अपाचे ग्रूवी और जावा
* [http://msdn.microsoft.com/en-us/library/dd492627.aspx Asynchronous Agents Library] – Microsoft actor library for Visual C++. "The Agents Library is a C++ template library that promotes an actor-based programming model and in-process message passing for coarse-grained dataflow and pipelining tasks. "
* [http://msdn.microsoft.com/en-us/library/dd492627.aspx Asynchronous Agents Library] – Microsoft actor library for Visual C++. "The Agents Library is a C++ template library that promotes an actor-based programming model और in-process message passing for coarse-grained dataflow और pipelining tasks. "
* [https://github.com/lightful/syscpp/ ActorThread in C++11] – base template providing the gist of the actor model over naked threads in standard C++11
* [https://github.com/lightful/syscpp/ ActorThread in C++11] – base template providing the gist of the actor model over naked threads in standard C++11
[[Category: अभिनेता मॉडल (कंप्यूटर विज्ञान) | अभिनेता मॉडल (कंप्यूटर विज्ञान) ]] [[Category: समवर्ती कंप्यूटिंग]]  
[[Category: अभिनेता मॉडल (कंप्यूटर विज्ञान) | अभिनेता मॉडल (कंप्यूटर विज्ञान) ]] [[Category: समवर्ती कंप्यूटिंग]]  

Revision as of 22:50, 18 May 2023

कंप्यूटर विज्ञान में ऐक्टर मॉडल समवर्ती संगणना का एक गणितीय मॉडल है जो एक 'ऐक्टर' को समवर्ती संगणना के बुनियादी निर्माण खंड के रूप में मानता है। प्राप्त संदेश (कंप्यूटिंग) के जवाब में, एक ऐक्टर: स्थानीय निर्णय ले सकता है, अधिक ऐक्टर बना सकता है, अधिक संदेश भेज सकता है, और यह निर्धारित कर सकता है कि प्राप्त अगले संदेश का जवाब कैसे दिया जाए। ऐक्टर अपनी निजी स्थिति को संशोधित कर सकते हैं, लेकिन संदेश के माध्यम से अप्रत्यक्ष रूप से केवल एक दूसरे को प्रभावित कर सकते हैं (लॉक (कंप्यूटर विज्ञान) की आवश्यकता को हटाकर | लॉक-आधारित सिंक्रनाइज़ेशन)।

ऐक्टर मॉडल की उत्पत्ति 1973 में हुई थी।[1] इसका उपयोग संगामिति (कंप्यूटर विज्ञान) के ऐक्टर मॉडल सिद्धांत के ढांचे के रूप में और संगामिति (कंप्यूटर विज्ञान) के कई ऐक्टर मॉडल कार्यान्वयन के लिए सैद्धांतिक आधार के रूप में किया गया है। मॉडल का अन्य कार्य से संबंध ऐक्टर मॉडल और प्रक्रिया गणना में चर्चा की गई है।

इतिहास

कार्ल हेविट के अनुसार, संगणना के पिछले मॉडलों के विपरीत, ऐक्टर मॉडल सामान्य सापेक्षता और क्वांटम यांत्रिकी सहित भौतिकी से प्रेरित था।[citation needed] यह प्रोग्रामिंग लैंग्वेज लिस्प (प्रोग्रामिंग भाषा) , सिमुला, स्मॉलटाक के शुरुआती संस्करणों, क्षमता-आधारित सुरक्षा | क्षमता-आधारित सिस्टम और पैकेट बदली से भी प्रभावित था। इसका विकास अत्यधिक समानांतर कंप्यूटिंग मशीनों की संभावना से प्रेरित था जिसमें दर्जनों, सैकड़ों, या यहां तक ​​कि हजारों स्वतंत्र माइक्रोप्रोसेसर सम्मिलित थे, जिनमें से प्रत्येक की अपनी स्थानीय मेमोरी और संचार प्रोसेसर था, जो एक उच्च-प्रदर्शन संचार नेटवर्क के माध्यम से संचार करता था।[2] उस समय से, मल्टी-कोर (कंप्यूटिंग) | मल्टी-कोर और mycore कंप्यूटर आर्किटेक्चर के माध्यम से बड़े पैमाने पर संगामिति के आगमन ने ऐक्टर मॉडल में रुचि को पुनर्जीवित किया है।

हेविट, बिशप और स्टीगर के 1973 के प्रकाशन के बाद, आइरीन ग्रीफ ने अपने डॉक्टरेट अनुसंधान के हिस्से के रूप में ऐक्टर मॉडल के लिए एक परिचालन शब्दार्थ विकसित किया।[3] दो साल बाद, हेनरी बेकर (कंप्यूटर वैज्ञानिक) और हेविट ने ऐक्टर प्रणालियों के लिए स्वयंसिद्ध कानूनों का एक सेट प्रकाशित किया।[4][5] अन्य प्रमुख मील के पत्थर में विलियम क्लिंजर (कंप्यूटर वैज्ञानिक) सम्मिलित हैं। विलियम क्लिंजर का 1981 का शोध प्रबंध शक्ति डोमेन पर आधारित ऐक्टर मॉडल के एक सांकेतिक शब्दार्थ को प्रस्तुत करता है।[2]और गुल आगा (कंप्यूटर वैज्ञानिक) का 1985 का शोध प्रबंध जिसने क्लिंगर्स के पूरक के लिए एक संक्रमण-आधारित सिमेंटिक मॉडल विकसित किया।[6] इसके परिणामस्वरूप ऐक्टर मॉडल सिद्धांत का पूर्ण विकास हुआ।

रस एटकिन्सन, ग्यूसेप अटारडी, हेनरी बेकर, गेरी बार्बर, पीटर बिशप, पीटर डी जोंग, केन कान, हेनरी लिबरमैन, कार्ल मैनिंग, टॉम रेनहार्ड्ट, रिचर्ड स्टीगर और डैन थेरियॉल्ट द्वारा मेसेज पासिंग सिमेंटिक्स ग्रुप में प्रमुख सॉफ्टवेयर कार्यान्वयन कार्य किया गया था। मैसाचुसेट्स की तकनीकी संस्था (एमआईटी)। कैलिफोर्निया प्रौद्योगिकी संस्थान (कैल्टेक) में चक सेइट्ज और एमआईटी में बिल डेली के नेतृत्व में अनुसंधान समूहों ने कंप्यूटर आर्किटेक्चर का निर्माण किया जिसने मॉडल में पारित होने वाले संदेश को और विकसित किया। ऐक्टर मॉडल कार्यान्वयन देखें।

कैलिफोर्निया इंस्टीट्यूट ऑफ टेक्नोलॉजी, क्योटो विश्वविद्यालय टोकोरो लेबोरेटरी, माइक्रोइलेक्ट्रॉनिक और कंप्यूटर प्रौद्योगिकी निगम (MCC), एमआईटी आर्टिफिशियल इंटेलिजेंस प्रयोगशाला, श्री इंटरनेशनल, स्टैनफोर्ड विश्वविद्यालय , इलिनोइस विश्वविद्यालय, उरबाना-शैंपेन में ऐक्टर मॉडल पर शोध किया गया है।[7] पियरे और मैरी क्यूरी विश्वविद्यालय (यूनिवर्सिटी ऑफ पेरिस 6), पीसा विश्वविद्यालय, टोक्यो विश्वविद्यालय योनेजावा लेबोरेटरी, सेंट्रम विस्कुंडे एंड इंफॉर्मेटिका (सीडब्ल्यूआई) और अन्य जगहों पर।

मौलिक अवधारणाएँ

ऐक्टर मॉडल इस दर्शन को अपनाता है कि सब कुछ एक ऐक्टर है। यह सब कुछ एक वस्तु दर्शन के समान है जिसका उपयोग कुछ वस्तु-उन्मुख प्रोग्रामिंग भाषाओं द्वारा किया जाता है।

एक ऐक्टर एक कम्प्यूटेशनल इकाई है, जो इसे प्राप्त संदेश के जवाब में समवर्ती रूप से कर सकता है:

  • अन्य अभिनेताओं को सीमित संख्या में संदेश भेजें;
  • नए अभिनेताओं की एक सीमित संख्या बनाएँ;
  • प्राप्त होने वाले अगले संदेश के लिए उपयोग किए जाने वाले व्यवहार को निर्दिष्ट करें।

उपरोक्त क्रियाओं का कोई अनुमानित क्रम नहीं है और उन्हें समानांतर में किया जा सकता है।

भेजे गए संचार से प्रेषक को अलग करना ऐक्टर मॉडल का मौलिक अग्रिम था जो अतुल्यकालिक संचार और नियंत्रण संरचनाओं को संदेश भेजने के पैटर्न के रूप में सक्षम बनाता था।[8] संदेशों के प्राप्तकर्ता एड्रैस से पहचाने जाते हैं, जिसे कभी-कभी डाक पता कहा जाता है। इस प्रकार एक ऐक्टर केवल उन अभिनेताओं के साथ संवाद कर सकता है जिनके एड्रैस उसके पास हैं। यह उन्हें प्राप्त होने वाले संदेश से प्राप्त कर सकता है, या यदि पता किसी ऐक्टर के लिए है जिसे उसने स्वयं बनाया है।

ऐक्टर मॉडल को अभिनेताओं के भीतर और अभिनेताओं के बीच अभिकलन की अंतर्निहित समरूपता, अभिनेताओं के गतिशील निर्माण, संदेशों में ऐक्टर के एड्रैस को सम्मिलित करने और केवल सीधे अतुल्यकालिक संदेश के माध्यम से संदेश आगमन आदेश पर कोई प्रतिबंध नहीं होने की विशेषता है।

औपचारिक प्रणाली

इन वर्षों में, कई अलग-अलग औपचारिक प्रणालियाँ विकसित की गई हैं जो ऐक्टर मॉडल में प्रणालियों के बारे में तर्क करने की अनुमति देती हैं। इसमे सम्मिलित है:

ऐसी औपचारिकताएं भी हैं जो ऐक्टर मॉडल के लिए पूरी तरह से वफादार नहीं हैं, जिसमें वे निम्नलिखित सहित संदेशों की गारंटीकृत डिलीवरी को औपचारिक रूप नहीं देते हैं (देखें ऐक्टर मॉडल बाद में इतिहास#ऐक्टर शब्दार्थ को बीजगणित और रैखिक तर्क से संबंधित करने का प्रयास):


अनुप्रयोग

ऐक्टर मॉडल का उपयोग समवर्ती प्रणालियों की एक विस्तृत श्रृंखला के बारे में मॉडलिंग, समझ और तर्क के लिए एक रूपरेखा के रूप में किया जा सकता है।[15] उदाहरण के लिए:

  • इलेक्ट्रॉनिक मेल (ईमेल) को एक ऐक्टर प्रणाली के रूप में तैयार किया जा सकता है। खातों को अभिनेताओं के रूप में और ईमेल एड्रैस को ऐक्टर के एड्रैस के रूप में तैयार किया जाता है।
  • वेब सेवाओं को सिंपल ऑब्जेक्ट एक्सेस प्रोटोकॉल (SOAP) एंडपॉइंट्स के साथ ऐक्टर के एड्रैस के रूप में तैयार किया जा सकता है।
  • ऑब्जेक्ट्स लॉक (कंप्यूटर साइंस) के साथ (उदाहरण के लिए, जावा (प्रोग्रामिंग भाषा) और सी शार्प (प्रोग्रामिंग लैंग्वेज) | सी #) में सीरिअलाइज़र के रूप में मॉडल किया जा सकता है, बशर्ते कि उनका कार्यान्वयन ऐसा हो कि संदेश लगातार आ सकें (शायद द्वारा) एक आंतरिक कतार (सार डेटा प्रकार) में संग्रहीत किया जा रहा है)। एक धारावाहिक एक महत्वपूर्ण प्रकार का ऐक्टर है जो संपत्ति द्वारा परिभाषित किया गया है कि यह नए संदेशों के आगमन के लिए लगातार उपलब्ध है; धारावाहिक को भेजे गए प्रत्येक संदेश के आने की गारंटी है।[16]
  • परीक्षण और परीक्षण नियंत्रण संकेतन (TTCN), दोनों TTCN-2 और TTCN-3, ऐक्टर मॉडल का काफी बारीकी से अनुसरण करते हैं। TTCN में ऐक्टर एक परीक्षण घटक है: या तो समानांतर परीक्षण घटक (PTC) या मुख्य परीक्षण घटक (MTC)। परीक्षण घटक दूरस्थ भागीदारों (सहकर्मी परीक्षण घटक या परीक्षण प्रणाली इंटरफ़ेस) को संदेश भेज और प्राप्त कर सकते हैं, बाद वाले को इसके एड्रैस से पहचाना जा सकता है। प्रत्येक परीक्षण घटक के पास एक व्यवहार वृक्ष होता है जो उससे जुड़ा होता है; परीक्षण घटक समानांतर में चलते हैं और मूल परीक्षण घटकों द्वारा गतिशील रूप से बनाए जा सकते हैं। अंतर्निहित भाषा संरचना आंतरिक संदेश कतार से अपेक्षित संदेश प्राप्त होने पर क्रियाओं की परिभाषा लेने की अनुमति देती है, जैसे किसी अन्य सहकर्मी इकाई को संदेश भेजना या नए परीक्षण घटक बनाना।

संदेश-गुजरने वाले शब्दार्थ

ऐक्टर मॉडल संदेश पारित करने के शब्दार्थ के बारे में है।

असंबद्ध nondeterminism विवाद

यकीनन, पहले समवर्ती कार्यक्रम इंटरप्ट हैंडलर थे। अपने सामान्य संचालन के समय एक कंप्यूटर को बाहर से जानकारी प्राप्त करने में सक्षम होना चाहिए (कीबोर्ड से वर्ण, नेटवर्क से पैकेट इत्यादि)। इसलिए जब सूचना पहुंची तो कंप्यूटर का निष्पादन बाधित हो गया और सूचना को डेटा बफर में रखने के लिए विशेष कोड (इंटरप्ट हैंडलर कहा जाता है) को बुलाया गया जहां इसे बाद में पुनर्प्राप्त किया जा सके।

1960 के दशक की शुरुआत में, एक प्रोसेसर पर कई कार्यक्रमों के समवर्ती निष्पादन को अनुकरण करने के लिए इंटरप्ट्स का उपयोग किया जाने लगा।[17] साझा स्मृति के साथ समवर्ती होने से समवर्ती नियंत्रण की समस्या उत्पन्न हुई। मूल रूप से, इस समस्या की कल्पना एक ही कंप्यूटर पर परस्पर बहिष्करण के रूप में की गई थी। Edsger Dijkstra ने सेमाफोर (प्रोग्रामिंग) विकसित किया और बाद में, 1971 और 1973 के बीच,[18] टोनी होरे[19] और प्रति ब्रिन्च हैनसेन[20] पारस्परिक बहिष्करण समस्या को हल करने के लिए विकसित मॉनिटर (सिंक्रनाइज़ेशन)। हालाँकि, इनमें से किसी भी समाधान ने प्रोग्रामिंग भाषा निर्माण प्रदान नहीं किया है जो साझा संसाधनों तक पहुंच को समाहित करता है। इस एनकैप्सुलेशन को बाद में क्रमबद्धता कंस्ट्रक्शन ([हेविट और एटकिंसन 1977, 1979] और [एटकिंसन 1980]) द्वारा पूरा किया गया था।

गणना के पहले मॉडल (जैसे, ट्यूरिंग मशीनें, पोस्ट प्रोडक्शंस, लैम्ब्डा कैलकुलस, आदि) गणित पर आधारित थे और एक कम्प्यूटेशनल कदम का प्रतिनिधित्व करने के लिए एक वैश्विक स्थिति का उपयोग किया (बाद में [मैककार्थी और हेस 1969] और [डिज्क्स्ट्रा में सामान्यीकृत] 1976] ऐक्टर मॉडल अर्ली हिस्ट्री देखें#इवेंट ऑर्डरिंग बनाम ग्लोबल स्टेट)। प्रत्येक कम्प्यूटेशनल कदम गणना की एक वैश्विक स्थिति से अगले वैश्विक स्थिति तक था। परिमित-राज्य मशीनों के लिए ऑटोमेटा सिद्धांत में वैश्विक राज्य दृष्टिकोण जारी रखा गया था और स्टैक मशीनों को नीचे धकेल दिया गया था, जिसमें उनके गैर-नियतात्मक परिमित ऑटोमेटन संस्करण भी सम्मिलित थे। इस तरह के nondeterministic automata में असीम nondeterminism का गुण होता है; अर्थात्, यदि कोई मशीन अपनी प्रारंभिक अवस्था में शुरू होने पर हमेशा रुकती है, तो यह उन राज्यों की संख्या पर बाध्य होती है जिनमें वह रुकती है।

Edsger Dijkstra ने गैर-नियतात्मक वैश्विक राज्य दृष्टिकोण को और विकसित किया। दिज्क्स्ट्रा के मॉडल ने असीमित अनिर्धारणवाद (जिसे असीमित अनिश्चितता भी कहा जाता है) से संबंधित एक विवाद को जन्म दिया, जो समवर्ती (कंप्यूटर विज्ञान) की एक संपत्ति है, जिसके द्वारा साझा संसाधनों के लिए विवाद की मध्यस्थता के परिणामस्वरूप अनुरोध की सेवा में देरी की मात्रा अबाधित हो सकती है। गारंटी है कि अनुरोध अंततः सेवित किया जाएगा। हेविट ने तर्क दिया कि ऐक्टर मॉडल को सेवा की गारंटी प्रदान करनी चाहिए। दिज्क्स्ट्रा के मॉडल में, हालांकि एक कंप्यूटर पर अनुक्रमिक निर्देशों के निष्पादन के बीच असीमित समय हो सकता है, एक (समानांतर) प्रोग्राम जो एक अच्छी तरह से परिभाषित राज्य में शुरू हुआ था, केवल राज्यों की सीमित संख्या में समाप्त हो सकता है [दिज्क्स्ट्रा 1976]। नतीजतन, उनका मॉडल सेवा की गारंटी प्रदान नहीं कर सका। दिज्क्स्ट्रा ने तर्क दिया कि असीमित गैर-निर्धारणवाद को लागू करना असंभव था।

हेविट ने अन्यथा तर्क दिया: ऐसी कोई सीमा नहीं है जिसे व्यवस्थित करने के लिए एक आर्बिटर (इलेक्ट्रॉनिक्स) नामक कम्प्यूटेशनल सर्किट को कितना समय लगता है (मेटास्टेबिलिटी (इलेक्ट्रॉनिक्स) देखें) पर रखा जा सकता है।[21] आर्बिटर्स का उपयोग कंप्यूटर में उस परिस्थिति से निपटने के लिए किया जाता है, जिसमें कंप्यूटर घड़ियां बाहर से इनपुट के संबंध में अतुल्यकालिक रूप से काम करती हैं, जैसे, कीबोर्ड इनपुट, डिस्क एक्सेस, नेटवर्क इनपुट, आदि। प्राप्त किया जा सकता है और इस बीच कंप्यूटर असीमित संख्या में राज्यों को पार कर सकता है।

ऐक्टर मॉडल में अबाधित अनिर्धारणवाद है, जिसे डोमेन सिद्धांत का उपयोग करके विल क्लिंजर द्वारा गणितीय मॉडल में कैप्चर किया गया था।[2]ऐक्टर मॉडल में कोई वैश्विक स्थिति नहीं है।[dubious ]

प्रत्यक्ष संचार और अतुल्यकालिक

ऐक्टर मॉडल में संदेश आवश्यक रूप से बफ़र्ड नहीं हैं। समवर्ती संगणना के मॉडल के पिछले दृष्टिकोणों के साथ यह एक तेज विराम था। बफ़रिंग की कमी ने ऐक्टर मॉडल के विकास के समय बहुत सी गलतफहमी पैदा की और अभी भी एक विवादास्पद मुद्दा है। कुछ शोधकर्ताओं ने तर्क दिया कि संदेश ईथर या पर्यावरण में बफ़र किए गए हैं। इसके अलावा, ऐक्टर मॉडल में संदेश केवल भेजे जाते हैं (जैसे इंटरनेट प्रोटोकॉल में पैकेट (सूचना प्रौद्योगिकी)); प्राप्तकर्ता के साथ एक तुल्यकालिक हैंडशेक की कोई आवश्यकता नहीं है।

संदेशों में ऐक्टर निर्माण प्लस एड्रैस का अर्थ है चर टोपोलॉजी

ऐक्टर मॉडल का एक स्वाभाविक विकास संदेशों में एड्रैस की अनुमति देना था। पैकेट स्विचिंग [1961 और 1964] से प्रभावित, हेविट ने समवर्ती संगणना के एक नए मॉडल के विकास का प्रस्ताव रखा जिसमें संचार के लिए कोई आवश्यक क्षेत्र बिल्कुल नहीं होगा: वे खाली हो सकते हैं। निस्संदेह, यदि संचार भेजने वाला चाहता है कि प्राप्तकर्ता के पास उन एड्रैस तक पहुंच हो जो प्राप्तकर्ता के पास पहले से नहीं है, तो पता संचार में भेजा जाना होगा।

उदाहरण के लिए, एक ऐक्टर को एक प्राप्तकर्ता ऐक्टर को एक संदेश भेजने की आवश्यकता हो सकती है जिससे वह बाद में प्रतिक्रिया प्राप्त करने की अपेक्षा करता है, लेकिन प्रतिक्रिया वास्तव में एक तीसरे ऐक्टर घटक द्वारा नियंत्रित की जाएगी जिसे प्रतिक्रिया प्राप्त करने और संभालने के लिए कॉन्फ़िगर किया गया है (उदाहरण के लिए) , पर्यवेक्षक पैटर्न को लागू करने वाला एक अलग ऐक्टर)। मूल ऐक्टर एक संचार भेजकर इसे पूरा कर सकता है जिसमें वह संदेश सम्मिलित है जिसे वह भेजना चाहता है, साथ ही तीसरे ऐक्टर का पता जो प्रतिक्रिया को संभालेगा। यह तीसरा ऐक्टर जो प्रतिक्रिया को संभालेगा, उसे फिर से शुरू करना कहा जाता है (कभी-कभी इसे निरंतरता या स्टैक फ्रेम भी कहा जाता है)। जब प्राप्तकर्ता ऐक्टर प्रतिक्रिया भेजने के लिए तैयार होता है, तो वह प्रतिक्रिया संदेश को फिर से शुरू करने वाले ऐक्टर के एड्रैस पर भेजता है जो मूल संचार में सम्मिलित था।

इसलिए, अभिनेताओं की नए अभिनेताओं को बनाने की क्षमता जिसके साथ वे संचार का आदान-प्रदान कर सकते हैं, संदेशों में अन्य अभिनेताओं के एड्रैस सम्मिलित करने की क्षमता के साथ, अभिनेताओं को एक दूसरे के साथ मनमाने ढंग से परिवर्तनशील सामयिक संबंधों को बनाने और भाग लेने की क्षमता देता है, जितना सिमुला और अन्य वस्तु-उन्मुख भाषाओं में वस्तुओं को भी संदेश-विनिमय वस्तुओं के चर टोपोलॉजी में संबंधपरक रूप से बनाया जा सकता है।

स्वाभाविक रूप से समवर्ती

अनुक्रमिक प्रक्रियाओं की रचना के आधार पर पिछले दृष्टिकोण के विपरीत, ऐक्टर मॉडल को एक अंतर्निहित समवर्ती मॉडल के रूप में विकसित किया गया था। ऐक्टर मॉडल में अनुक्रमिकता एक विशेष मामला था जो ऐक्टर मॉडल सिद्धांत में वर्णित समवर्ती संगणना से प्राप्त हुआ था।

संदेश आगमन के आदेश पर कोई आवश्यकता नहीं

हेविट ने आवश्यकता को जोड़ने के खिलाफ तर्क दिया कि संदेशों को उस क्रम में आना चाहिए जिसमें वे ऐक्टर को भेजे गए हैं। यदि आउटपुट संदेश ऑर्डरिंग वांछित है, तो यह एक कतार ऐक्टर द्वारा तैयार किया जा सकता है जो यह कार्यक्षमता प्रदान करता है। ऐसा कतार ऐक्टर आने वाले संदेशों को कतारबद्ध करेगा ताकि उन्हें फीफो (कंप्यूटिंग और इलेक्ट्रॉनिक्स) क्रम में पुनर्प्राप्त किया जा सके। तो अगर कोई ऐक्टर X एक संदेश भेजा M1 एक ऐक्टर को Y, और बाद में X एक और संदेश भेजा M2 को Y, इसकी कोई आवश्यकता नहीं है M1 पर आता है Y पहले M2.

इस संबंध में ऐक्टर मॉडल पैकेट स्विचिंग सिस्टम को प्रतिबिंबित करता है जो इस बात की गारंटी नहीं देता है कि भेजे गए क्रम में पैकेट प्राप्त होना चाहिए। डिलीवरी गारंटी का आदेश प्रदान नहीं करने से पैकेट को बफर पैकेट में स्विच करने, पैकेट भेजने के लिए कई रास्तों का उपयोग करने, क्षतिग्रस्त पैकेट को फिर से भेजने और अन्य अनुकूलन प्रदान करने की अनुमति मिलती है।

उदाहरण के लिए, अभिनेताओं को संदेशों के प्रसंस्करण को पाइपलाइन करने की अनुमति है। इसका मतलब यह है कि किसी मैसेज को प्रोसेस करने के समय M1, एक ऐक्टर अगले संदेश को संसाधित करने के लिए उपयोग किए जाने वाले व्यवहार को निर्दिष्ट कर सकता है, और फिर वास्तव में दूसरे संदेश को संसाधित करना शुरू कर सकता है M2 इससे पहले कि यह प्रसंस्करण समाप्त कर ले M1. सिर्फ इसलिए कि एक ऐक्टर को संदेशों के प्रसंस्करण को पाइपलाइन करने की अनुमति है, इसका मतलब यह नहीं है कि उसे प्रसंस्करण को पाइपलाइन करना चाहिए। संदेश पाइपलाइन में है या नहीं यह एक इंजीनियरिंग ट्रेडऑफ़ है। एक बाहरी प्रेक्षक को कैसे पता चलेगा कि किसी ऐक्टर द्वारा संदेश का प्रसंस्करण पाइपलाइन किया गया है या नहीं? पाइपलाइनिंग की संभावना से निर्मित ऐक्टर की परिभाषा में कोई अस्पष्टता नहीं है। बेशक, कुछ कार्यान्वयनों में गलत तरीके से पाइपलाइन अनुकूलन करना संभव है, जिस स्थिति में अनपेक्षित व्यवहार हो सकता है।

मोहल्ला

ऐक्टर मॉडल की एक अन्य महत्वपूर्ण विशेषता स्थानीयता है।

स्थानीयता का अर्थ है कि एक संदेश को संसाधित करने में, एक ऐक्टर केवल उन एड्रैस पर संदेश भेज सकता है जो उसे संदेश में प्राप्त होते हैं, वे एड्रैस जो पहले से ही संदेश प्राप्त करने से पहले थे, और अभिनेताओं के एड्रैस जो संदेश को संसाधित करते समय बनाते हैं। (लेकिन अभिनेताओं के #Synthesizing एड्रैस देखें।)

इसके अलावा स्थानीयता का अर्थ है कि कई स्थानों में एक साथ परिवर्तन नहीं होता है। इस तरह यह संगामिति के कुछ अन्य मॉडलों से अलग है, उदाहरण के लिए, पेट्री नेट मॉडल जिसमें टोकन को एक साथ कई स्थानों से हटाकर अन्य स्थानों पर रखा जाता है।

कंपोज़िंग एक्टर सिस्टम्स

गुल आगा के डॉक्टरेट शोध प्रबंध में विकसित किए गए प्रतिरूपकता (प्रोग्रामिंग) का एक महत्वपूर्ण पहलू ऐक्टर प्रणालियों को बड़े लोगों में बनाने का विचार है,[6]बाद में गुल आगा, इयान मेसन, स्कॉट स्मिथ और कैरोलिन टैल्कॉट द्वारा विकसित किया गया।[9]


व्यवहार

एक प्रमुख नवाचार गणितीय कार्य के रूप में निर्दिष्ट व्यवहार का परिचय था, यह व्यक्त करने के लिए कि एक ऐक्टर क्या करता है जब वह संदेश को संसाधित करता है, जिसमें आने वाले अगले संदेश को संसाधित करने के लिए एक नया व्यवहार निर्दिष्ट करना सम्मिलित है। व्यवहार ने संगामिति में साझाकरण को गणितीय रूप से मॉडल करने के लिए एक तंत्र प्रदान किया।

व्यवहार ने ऐक्टर मॉडल को कार्यान्वयन विवरण से भी मुक्त कर दिया, उदाहरण के लिए, स्मॉलटाक -72 टोकन स्ट्रीम दुभाषिया। हालांकि, यह समझना महत्वपूर्ण है कि ऐक्टर मॉडल द्वारा वर्णित प्रणालियों के कुशल कार्यान्वयन के लिए व्यापक अनुकूलन की आवश्यकता होती है। विवरण के लिए ऐक्टर मॉडल कार्यान्वयन देखें।

मॉडलिंग अन्य समवर्ती सिस्टम

अन्य संगामिति प्रणालियों (जैसे, प्रक्रिया गणना) को दो-चरण प्रतिबद्ध प्रोटोकॉल का उपयोग करके ऐक्टर मॉडल में तैयार किया जा सकता है।[22]


कम्प्यूटेशनल प्रतिनिधित्व प्रमेय

सिस्टम के लिए ऐक्टर मॉडल में एक कम्प्यूटेशनल प्रतिनिधित्व प्रमेय है जो इस अर्थ में बंद है कि वे बाहर से संचार प्राप्त नहीं करते हैं। एक बंद प्रणाली द्वारा निरूपित गणितीय संकेत प्रारंभिक व्यवहार से निर्मित होता है और एक व्यवहार-अनुमानित समारोह ये तेजी से अधिकतम सन्निकटन प्राप्त करते हैं और इसके लिए एक अर्थ (अर्थ) का निर्माण करते हैं इस प्रकार [हेविट 2008; क्लिंजर 1981]:

इस प्रकार से, गणितीय रूप से इसके सभी संभावित व्यवहारों के संदर्भ में वर्णित किया जा सकता है (जिनमें वे भी सम्मिलित हैं जिनमें अबाधित अनिर्धारणवाद सम्मिलित है)। यद्यपि का क्रियान्वयन नहीं है , इसका उपयोग चर्च-ट्यूरिंग-रॉसर-क्लीन थीसिस [क्लीन 1943] के सामान्यीकरण को साबित करने के लिए किया जा सकता है:

उपरोक्त प्रमेय का एक परिणाम यह है कि एक परिमित ऐक्टर गैर-निर्धारक रूप से एक के साथ प्रतिक्रिया कर सकता है uncountable[clarify] विभिन्न आउटपुट की संख्या।

लॉजिक प्रोग्रामिंग से संबंध

ऐक्टर मॉडल के विकास के लिए प्रमुख प्रेरणाओं में से एक योजनाकार प्रोग्रामिंग भाषा के विकास में उत्पन्न नियंत्रण संरचना के मुद्दों को समझना और उनसे निपटना था।[citation needed] ऐक्टर मॉडल को शुरू में परिभाषित किए जाने के बाद, रॉबर्ट कोवाल्स्की की थीसिस के सापेक्ष मॉडल की शक्ति को समझना एक महत्वपूर्ण चुनौती थी कि संगणना को निगमन द्वारा समाहित किया जा सकता है। हेविट ने तर्क दिया कि ऐक्टर मॉडल में समवर्ती संगणना के लिए कोवाल्स्की की थीसिस झूठी निकली (देखें समवर्ती संगणना में अनिश्चितता)।

फिर भी, तर्क प्रोग्रामिंग को समवर्ती संगणना तक विस्तारित करने का प्रयास किया गया। हालांकि, हेविट और आगा [1991] ने दावा किया कि परिणामी प्रणालियां निम्नलिखित अर्थों में निगमनात्मक नहीं थीं: समवर्ती तर्क प्रोग्रामिंग प्रणालियों के कम्प्यूटेशनल चरण पिछले चरणों से कटौतीत्मक रूप से पालन नहीं करते हैं (समवर्ती संगणना में अनिश्चितता देखें)। हाल ही में, लॉजिक प्रोग्रामिंग को ऐक्टर मॉडल में एक तरह से एकीकृत किया गया है जो तार्किक शब्दार्थ को बनाए रखता है।[21]


प्रवासन

ऐक्टर मॉडल में प्रवास स्थान बदलने के लिए अभिनेताओं की क्षमता है। उदाहरण के लिए, अपने शोध प्रबंध में, अकी योनेज़ावा ने एक डाकघर का मॉडल तैयार किया जिसमें ग्राहक ऐक्टर प्रवेश कर सकते थे, संचालन के समय स्थान बदल सकते थे और बाहर निकल सकते थे। एक ऐक्टर जो माइग्रेट कर सकता है, एक स्थान ऐक्टर के द्वारा मॉडल किया जा सकता है जो ऐक्टर के माइग्रेट होने पर बदल जाता है। हालाँकि इस मॉडलिंग की विश्वसनीयता विवादास्पद है और शोध का विषय है।[citation needed]

सुरक्षा

अभिनेताओं की सुरक्षा को निम्नलिखित तरीकों से संरक्षित किया जा सकता है:

अभिनेताओं के एड्रैस संश्लेषित करना

ऐक्टर मॉडल में एक नाजुक बिंदु ऐक्टर के एड्रैस को संश्लेषित करने की क्षमता है। कुछ मामलों में एड्रैस के संश्लेषण को रोकने के लिए सुरक्षा का उपयोग किया जा सकता है (#सुरक्षा देखें)। हालाँकि, यदि एक ऐक्टर का पता केवल एक बिट स्ट्रिंग है, तो स्पष्ट रूप से इसे संश्लेषित किया जा सकता है, हालांकि यह मुश्किल हो सकता है या किसी ऐक्टर के एड्रैस का अनुमान लगाना भी असंभव हो सकता है यदि बिट स्ट्रिंग्स काफी लंबे हैं। SOAP एक समापन बिंदु के एड्रैस के लिए एक यूनिफ़ॉर्म रिसोर्स लोकेटर का उपयोग करता है जहाँ एक ऐक्टर तक पहुँचा जा सकता है। चूंकि यूनिफ़ॉर्म रिसोर्स लोकेटर एक कैरेक्टर स्ट्रिंग है, इसे स्पष्ट रूप से संश्लेषित किया जा सकता है, हालांकि एन्क्रिप्शन इसे अनुमान लगाने में लगभग असंभव बना सकता है।

अभिनेताओं के एड्रैस का संश्लेषण सामान्य रूप से मानचित्रण का उपयोग करके किया जाता है। वास्तविक ऐक्टर एड्रैस पर मैपिंग करने के लिए एक ऐक्टर प्रणाली का उपयोग करने का विचार है। उदाहरण के लिए, कंप्यूटर पर कंप्यूटर की मेमोरी संरचना को एक ऐक्टर प्रणाली के रूप में तैयार किया जा सकता है जो मैपिंग करता है। SOAP एड्रैस की स्थिति में, यह डोमेन की नामांकन प्रणाली और बाकी यूनिफ़ॉर्म रिसोर्स लोकेटर मैपिंग की मॉडलिंग कर रहा है।

=== संदेश पास करने वाले संगामिति === के अन्य मॉडलों के साथ तुलना करें संगामिति पर रॉबिन मिलनर का आरंभिक प्रकाशित कार्य[23] यह भी उल्लेखनीय था कि यह अनुक्रमिक प्रक्रियाओं की रचना पर आधारित नहीं था। उनका काम ऐक्टर मॉडल से अलग था क्योंकि यह निश्चित टोपोलॉजी की प्रक्रियाओं की एक निश्चित संख्या पर आधारित था जो समकालिक संचार का उपयोग करके संख्याओं और तारों को संप्रेषित करता था। मूल संचार अनुक्रमिक प्रक्रिया (सीएसपी) मॉडल[24] टोनी होरे द्वारा प्रकाशित ऐक्टर मॉडल से भिन्न है क्योंकि यह एक निश्चित टोपोलॉजी में जुड़ी अनुक्रमिक प्रक्रियाओं की एक निश्चित संख्या की समानांतर रचना पर आधारित था, और प्रक्रिया के नामों के आधार पर सिंक्रोनस संदेश-पासिंग का उपयोग करके संचार करना (ऐक्टर मॉडल और प्रक्रिया गणना इतिहास # प्रारंभिक कार्य देखें)। सीएसपी के बाद के संस्करणों ने चैनलों के माध्यम से अनाम संचार के पक्ष में प्रक्रिया के नाम के आधार पर संचार को छोड़ दिया, संचार प्रणालियों के कलन और π-कैलकुलस पर मिलनर के काम में भी एक दृष्टिकोण का उपयोग किया गया।

मिल्नर और होरे दोनों के इन शुरुआती मॉडलों में बंधी हुई गैर-नियतत्ववाद की संपत्ति थी। आधुनिक, सैद्धांतिक सीएसपी ([होरे 1985] और [रोसको 2005]) स्पष्ट रूप से अबाधित अनिर्धारणवाद प्रदान करता है।

पेट्री डिश और उनके एक्सटेंशन (उदाहरण के लिए, रंगीन पेट्री नेट) अभिनेताओं की तरह हैं, जिसमें वे एसिंक्रोनस मैसेज पासिंग और अनबाउंड नॉनडेटर्मिनिज्म पर आधारित होते हैं, जबकि वे शुरुआती सीएसपी की तरह होते हैं, जिसमें वे प्राथमिक प्रसंस्करण चरणों (संक्रमण) और संदेश रिपॉजिटरी की निश्चित टोपोलॉजी को परिभाषित करते हैं। (स्थान)।

प्रभाव

ऐक्टर मॉडल सिद्धांत विकास और व्यावहारिक सॉफ्टवेयर विकास दोनों पर प्रभावशाली रहा है।

सिद्धांत

ऐक्टर मॉडल ने π-कैलकुलस के विकास और बाद की प्रक्रिया कैलकुली को प्रभावित किया है। अपने ट्यूरिंग व्याख्यान में, रॉबिन मिलनर ने लिखा:[25]

अब, शुद्ध लैम्ब्डा-कैलकुलस को केवल दो प्रकार की चीज़ों से बनाया गया है: टर्म्स और वेरिएबल्स। क्या हम एक प्रक्रिया कलन के लिए समान अर्थव्यवस्था प्राप्त कर सकते हैं? कार्ल हेविट ने अपने अभिनेताओं के मॉडल के साथ इस चुनौती का जवाब बहुत पहले दे दिया था; उन्होंने घोषणा की कि एक मूल्य, मूल्यों पर एक संचालिका, और एक प्रक्रिया सभी एक ही प्रकार की होनी चाहिए: एक ऐक्टर।

इस लक्ष्य ने मुझे प्रभावित किया, क्योंकि यह एकरूपता और अभिव्यक्ति की पूर्णता का तात्पर्य है ... लेकिन इससे पहले कि मैं देख पाता कि बीजगणितीय कलन के संदर्भ में लक्ष्य कैसे प्राप्त किया जाए ...

इसलिए, हेविट की भावना में, हमारा पहला कदम यह मांग करना है कि सभी चीजें जो शब्दों से निरूपित हों या नामों से एक्सेस की गई हों - मान, रजिस्टर, ऑपरेटर, प्रक्रियाएं, वस्तुएं - सभी एक ही तरह की हों; वे सभी प्रक्रियाएं होनी चाहिए।

अभ्यास

व्यावसायिक अभ्यास पर ऐक्टर मॉडल का व्यापक प्रभाव पड़ा है। उदाहरण के लिए, ट्विटर ने स्केलेबिलिटी के लिए अभिनेताओं का इस्तेमाल किया है।[26] साथ ही, Microsoft ने अपने एसिंक्रोनस एजेंट्स लाइब्रेरी के विकास में ऐक्टर मॉडल का उपयोग किया है।[27] नीचे ऐक्टर पुस्तकालयों और ढांचे अनुभाग में सूचीबद्ध कई अन्य ऐक्टर पुस्तकालय हैं।

संबोधित मुद्दे

हेविट [2006] के अनुसार, ऐक्टर मॉडल निम्नलिखित सहित कंप्यूटर और संचार वास्तुकला, समवर्ती प्रोग्रामिंग भाषाओं और वेब सेवाओं में मुद्दों को संबोधित करता है:

  • मापनीयता: स्थानीय और गैर-स्थानीय दोनों तरह से संगामिति को बढ़ाने की चुनौती।
  • स्थान पारदर्शिता: स्थानीय और गैर-स्थानीय संगामिति के बीच की खाई को पाटना। पारदर्शिता वर्तमान में एक विवादास्पद मुद्दा है। कुछ शोधकर्ता[who?] ने समवर्ती प्रोग्रामिंग भाषाओं (जैसे, जावा (प्रोग्रामिंग भाषा) और सी शार्प (प्रोग्रामिंग भाषा)|सी#) का उपयोग करते हुए स्थानीय संगामिति के बीच वेब सेवाओं के लिए SOAP का उपयोग करके गैर-स्थानीय संगामिति के बीच सख्त अलगाव की वकालत की है। सख्त अलगाव पारदर्शिता की कमी पैदा करता है जो समस्याओं का कारण बनता है जब वेब सेवाओं के लिए स्थानीय और गैर-स्थानीय पहुंच के बीच परिवर्तन करना वांछनीय/आवश्यक होता है (वितरित कंप्यूटिंग देखें)।
  • असंगति: असंगति आदर्श है क्योंकि मानव सूचना प्रणाली की अंतःक्रियाओं के बारे में सभी बहुत बड़ी ज्ञान प्रणालियाँ असंगत हैं। यह विसंगति बहुत बड़ी प्रणालियों (जैसे, माइक्रोसॉफ्ट विंडोज सॉफ्टवेयर, आदि) के प्रलेखन और विशिष्टताओं तक फैली हुई है, जो आंतरिक रूप से असंगत हैं।

ऐक्टर मॉडल में पेश किए गए कई विचार अब इन्हीं कारणों [हेविट 2006बी 2007बी] के लिए मल्टी-एजेंट सिस्टम में भी आवेदन पा रहे हैं। मुख्य अंतर यह है कि एजेंट सिस्टम (अधिकांश परिभाषाओं में) अभिनेताओं पर अतिरिक्त प्रतिबंध लगाते हैं, सामान्य रूप से यह आवश्यक होता है कि वे प्रतिबद्धताओं और लक्ष्यों का उपयोग करें।

अभिनेताओं के साथ प्रोग्रामिंग

कई अलग-अलग प्रोग्रामिंग लैंग्वेज ऐक्टर मॉडल या इसके कुछ बदलाव को नियोजित करती हैं। इन भाषाओं में सम्मिलित हैं:

प्रारंभिक ऐक्टर प्रोग्रामिंग भाषाएं

  • अधिनियम 1, 2 और 3[28][29]
  • एक्टटॉक[30]
  • साल[31]
  • कैंटर[32]
  • रोसेट[33]


बाद में ऐक्टर प्रोग्रामिंग भाषाएं

एक्टर लाइब्रेरी और फ्रेमवर्क

ऐक्टर-शैली की प्रोग्रामिंग को उन भाषाओं में अनुमति देने के लिए ऐक्टर पुस्तकालय या रूपरेखाएँ भी लागू की गई हैं जिनमें ऐक्टर अंतर्निहित नहीं हैं। इनमें से कुछ रूपरेखाएँ हैं:

नाम स्थिति नवीनतम प्रकाशन लाइसेंस भाषा
Xcraft Goblins Active 2022-08-30 एमआईटी जावास्क्रिप्ट
ReActed Active 2022-11-30 अपाचे 2.0 जावा
Acteur Active 2020-04-16[47] अपाचे-2.0 / एमआईटी आरयूएसटी
Bastion Active 2020-08-12[48] अपाचे-2.0 / एमआईटी आरयूएसटी
Actix Active 2020-09-11[49] एमआईटी आरयूएसटी
Aojet Active 2016-10-17 एमआईटी एसडब्ल्यूआईएफटी
Actor Active 2017-03-09 एमआईटी जावा
Actor4j Active 2020-01-31 अपाचे 2.0 जावा
Actr Active 2019-04-09[50] अपाचे 2.0 जावा
Vert.x Active 2018-02-13 अपाचे 2.0 जावा, ग्रूवी, जावास्क्रिप्ट, रूबी, स्काला, कोटलिन, सीलोन
ActorFx Inactive 2013-11-13 अपाचे 2.0 .एनईटी
Akka (toolkit) Active 2022-09-06[51] व्यवसायिक[52] ( 2.7.0 से, अपाचे 2.0 तक 2.6.20) जावा और स्काला
Akka.NET Active 2020-08-20[53] अपाचे 2.0 .नेट
Dapr Active 2019-10-16 अपाचे 2.0 जावा, .नेट कोर, जाओ, जावास्क्रिप्ट, पायथन, आरयूएसटी और C++
DOTNETACTORS Active 2021-06-14 एमआईटी .नेट, C#, एज़्योर सर्विस बस
Remact.Net Inactive 2016-06-26 एमआईटी .नेट, जावास्क्रिप्ट
Ateji PX Inactive ? ? जावा
czmq Active 2016-11-10 MPL-2 C
F# MailboxProcessor Active same as F# (built-in core library) अपाचे लाइसेंस F#
Korus Active 2010-02-04 जीपीएल 3 जावा
Kilim[54] Active 2018-11-09[55] एमआईटी जावा
ActorFoundry (based on Kilim) Inactive 2008-12-28 ? जावा
ActorKit Active 2011-09-13[56] बीएसडी ऑब्जेक्टिव-C
Cloud Haskell Active 2015-06-17[57] बीएसडी हास्केल
CloudI Active 2021-05-27[58] एमआईटी एटीएस, C/C++, एलिक्सिर/एरलैंग/एलएफई, गो, हास्केल, जावा, जावास्क्रिप्ट, ओकैमल, पर्ल, पीएचपी, पायथन, रूबी
Clutter Active 2017-05-12[59] एलजीपीएल 2.1 C, C++ (क्लटरएमएम), पायथन (पाइक्लटर), पर्ल (पर्ल-क्लटर)
NAct Inactive 2012-02-28 एलजीपीएल 3.0 .नेट
Nact Archived 2021-02-05 at the Wayback Machine Active 2018-06-06[60] अपाचे 2.0 जावास्क्रिप्ट/रीजनएमएल
Retlang Inactive 2011-05-18[61] नया बीएसडी .नेट
JActor Inactive 2013-01-22 एलजीपीएल जावा
Jetlang Active 2013-05-30[62] नया बीएसडी जावा
Haskell-Actor Active? 2008 नया बीएसडी हास्केल
GPars Active 2014-05-09[63] अपाचे 2.0 ग्रूवी
OOSMOS Active 2019-05-09[64] जीपीएल 2.0 और व्यावसायिक (दोहरी लाइसेंसिंग) C. C++ फ्रेंडली
Panini Active 2014-05-22 MPL 1.1 प्रोग्रामिंग भाषा स्वयं में
PARLEY Active? 2007-22-07 जीपीएल 2.1 पायथन
Peernetic Active 2007-06-29 एलजीपीएल 3.0 जावा
Picos Active 2020-02-04 एमआईटी केआरएल
PostSharp Active 2014-09-24 व्यवसायिक / फ्रीमियम .नेट
Pulsar Active 2016-07-09[65] नया बीएसडी पायथन
Pulsar Active 2016-02-18[66] एलजीपीएल/Eclipse क्लोजर
Pykka Active 2019-05-07[67] अपाचे 2.0 पायथन
Termite Scheme Active? 2009-05-21 एलजीपीएल योजना (गैम्बिट कार्यान्वयन)
Theron Inactive[68] 2014-01-18[69] एमआईटी[70] C++
Thespian Active 2020-03-10 एमआईटी पायथन
Quasar Active 2018-11-02[71] एलजीपीएल/ग्रहण जावा
Libactor Active? 2009 जीपीएल 2.0 C
Actor-CPP Active 2012-03-10[72] जीपीएल 2.0 C++
S4 Inactive 2012-07-31[73] अपाचे 2.0 जावा
C++ Actor Framework (CAF) Active 2020-02-08[74] बूस्ट सॉफ्टवेयर लाइसेंस 1.0 और बीएसडी 3-क्लॉज C++11
Celluloid Active 2018-12-20[75] एमआईटी रूबी
लैबव्यू Actor Framework Active 2012-03-01[76] राष्ट्रीय उपकरण एसएलए लैबव्यू
लैबव्यू Messenger Library Active 2021-05-24 बीएसडी लैबव्यू
Orbit Active 2019-05-28[77] नया बीएसडी जावा
QP frameworks for real-time embedded systems Active 2019-05-25[78] जीपीएल 2.0और व्यावसायिक (दोहरी लाइसेंसिंग) C और C++
libprocess Active 2013-06-19 अपाचे 2.0 C++
SObjectizer Archived 2020-08-10 at the Wayback Machine Active 2021-12-28[79] बीएसडी C++17
rotor Active 2022-04-23[80] एमआईटी लाइसेंस C++17
Orleans Active 2022-08-15[81] एमआईटी लाइसेंस C#/.नेट
Skynet Active 2020-12-10 एमआईटी लाइसेंस C/Lua
Reactors.IO Active 2016-06-14 बीएसडी लाइसेंस जावा/स्काला
libagents Active 2020-03-08 मुखट सॉफ्टवेयर लाइसेंस C++11
Proto.Actor Active 2021-01-05 मुखट सॉफ्टवेयर लाइसेंस Go, C#, पायथन, जावास्क्रिप्ट, कोटलिन
FunctionalJava Archived 2021-04-22 at the Wayback Machine Active 2018-08-18[82] बीएसडी 3-क्लॉज जावा
Riker Active 2019-01-04 एमआईटी लाइसेंस आरयूएसटी
Comedy Active 2019-03-09 ईपीएल 1.0 जावास्क्रिप्ट
VLINGO XOOM Actors Active 2023-02-15 मोज़िला पब्लिक लाइसेंस 2.0 जावा, कोटलिन, जेवीएम भाषाएं, C# .नेट
wasmCloud Active 2021-03-23 अपाचे 2.0 वेब असेंबली (आरयूएसटी, टाइनीगो, ज़िग, असेंबलीस्क्रिप्ट)
Active 2020-08-27 अपाचे 2.0 पायथन
सेल Active 2012-08-02 नया बीएसडी लाइसेंस पायथन
गो-ऐक्टर Active 2022-08-16 जीपीएल 3.0 गोलांग
सेंटो Active 2022-11-21 अपाचे 2.0 सामान्य एलआईएसपी


यह भी देखें

संदर्भ

  1. Hewitt, Carl; Bishop, Peter; Steiger, Richard (1973). "आर्टिफिशियल इंटेलिजेंस के लिए एक सार्वभौमिक मॉड्यूलर अभिनेता औपचारिकता". IJCAI. {{cite journal}}: Cite journal requires |journal= (help)
  2. 2.0 2.1 2.2 2.3 William Clinger (June 1981). "अभिनेता शब्दार्थ की नींव". Mathematics Doctoral Dissertation. MIT. hdl:1721.1/6935. {{cite journal}}: Cite journal requires |journal= (help)
  3. 3.0 3.1 Irene Greif (August 1975). "समानांतर प्रक्रियाओं का संचार करने का शब्दार्थ". EECS Doctoral Dissertation. MIT. {{cite journal}}: Cite journal requires |journal= (help)
  4. 4.0 4.1 Henry Baker; Carl Hewitt (August 1977). "समानांतर प्रक्रियाओं के संचार के लिए कानून". IFIP. {{cite journal}}: Cite journal requires |journal= (help)
  5. "समानांतर प्रक्रियाओं के संचार के लिए कानून" (PDF). 10 May 1977. Archived (PDF) from the original on 24 June 2016. Retrieved 11 June 2014.
  6. 6.0 6.1 6.2 Gul Agha (1986). "Actors: A Model of Concurrent Computation in Distributed Systems". Doctoral Dissertation. MIT Press. hdl:1721.1/6952. {{cite journal}}: Cite journal requires |journal= (help)
  7. "घर". Osl.cs.uiuc.edu. Archived from the original on 2013-02-22. Retrieved 2012-12-02.
  8. Carl Hewitt. Viewing Control Structures as Patterns of Passing Messages Journal of Artificial Intelligence. June 1977.
  9. 9.0 9.1 Gul Agha; Ian Mason; Scott Smith; Carolyn Talcott (January 1993). "अभिनेता संगणना के लिए एक फाउंडेशन". Journal of Functional Programming.
  10. Carl Hewitt (2006-04-27). "What is Commitment? Physical, Organizational, and Social" (PDF). Archived (PDF) from the original on 2021-02-11. Retrieved 2006-05-26. {{cite journal}}: Cite journal requires |journal= (help)
  11. Mauro Gaspari; Gianluigi Zavattaro (May 1997). "An Algebra of Actors" (PDF). ओपन ऑब्जेक्ट-आधारित वितरित सिस्टम के लिए औपचारिक तरीके. Technical Report UBLCS-97-4. University of Bologna. pp. 3–18. doi:10.1007/978-0-387-35562-7_2. ISBN 978-1-4757-5266-3. Archived (PDF) from the original on 2018-07-26. Retrieved 2019-04-08.
  12. M. Gaspari; G. Zavattaro (1999). "अभिनेताओं का एक बीजगणित". Formal Methods for Open Object Based Systems. {{cite journal}}: Cite journal requires |journal= (help)
  13. Gul Agha; Prasanna Thati (2004). "अभिनेताओं का एक बीजगणितीय सिद्धांत और एक साधारण वस्तु-आधारित भाषा में इसका अनुप्रयोग" (PDF). From OO to FM (Dahl Festschrift) LNCS 2635. Archived from the original (PDF) on 2004-04-20. {{cite journal}}: Cite journal requires |journal= (help)
  14. John Darlington; Y. K. Guo (1994). "रैखिक तर्क में अभिनेताओं को औपचारिक बनाना". International Conference on Object-Oriented Information Systems. {{cite journal}}: Cite journal requires |journal= (help)
  15. "What is the Actor Model & When Should You Use it?". Matt Ferderer (in English). Archived from the original on 2021-08-25. Retrieved 2021-08-25.
  16. Cheung, Leo (2017-07-25). "अक्का और अभिनेता मॉडल IoT अनुप्रयोगों के लिए क्यों चमकते हैं". InfoWorld (in English). Archived from the original on 2021-08-25. Retrieved 2021-08-25.
  17. Hansen, Per Brinch (2002). The Origins of Concurrent Programming: From Semaphores to Remote Procedure Calls. Springer. ISBN 978-0-387-95401-1.
  18. Hansen, Per Brinch (1996). "Monitors and Concurrent Pascal: A Personal History". Communications of the ACM: 121–172.
  19. Hoare, Tony (October 1974). "Monitors: An Operating System Structuring Concept". Communications of the ACM. 17 (10): 549–557. doi:10.1145/355620.361161. S2CID 1005769.
  20. Hansen, Per Brinch (July 1973). ऑपरेटिंग सिस्टम सिद्धांत. Prentice-Hall.
  21. 21.0 21.1 Hewitt, Carl (2012). "What is computation? Actor Model versus Turing's Model". In Zenil, Hector (ed.). A Computable Universe: Understanding Computation & Exploring Nature as Computation. Dedicated to the memory of Alan M. Turing on the 100th anniversary of his birth. World Scientific Publishing Company.
  22. Frederick Knabe. A Distributed Protocol for Channel-Based Communication with Choice PARLE 1992 Archived 2017-08-31 at the Wayback Machine.
  23. Robin Milner. Processes: A Mathematical Model of Computing Agents in Logic Colloquium 1973.
  24. C.A.R. Hoare. Communicating sequential processes CACM. August 1978.
  25. Milner, Robin (1993). "अंतःक्रिया के तत्व". Communications of the ACM. 36: 78–89. doi:10.1145/151233.151240.
  26. "How Twitter Is Scaling « Waiming Mok's Blog". Waimingmok.wordpress.com. 2009-06-27. Archived from the original on 2021-02-05. Retrieved 2012-12-02.
  27. "Actor-Based Programming with the Asynchronous Agents Library Archived 2017-08-31 at the Wayback Machine" MSDN September 2010.
  28. Henry Lieberman (June 1981). "A Preview of Act 1". MIT AI memo 625. hdl:1721.1/6350. {{cite journal}}: Cite journal requires |journal= (help)
  29. Henry Lieberman (June 1981). "Thinking About Lots of Things at Once without Getting Confused: Parallelism in Act 1". MIT AI memo 626. hdl:1721.1/6351. {{cite journal}}: Cite journal requires |journal= (help)
  30. Jean-Pierre Briot. Acttalk: A framework for object-oriented concurrent programming-design and experience 2nd France-Japan workshop. 1999. Archived 2018-06-28 at the Wayback Machine
  31. Ken Kahn. A Computational Theory of Animation Archived 2017-08-18 at the Wayback Machine MIT EECS Doctoral Dissertation. August 1979.
  32. William Athas and Nanette Boden Cantor: An Actor Programming System for Scientific Computing Archived 2019-04-08 at the Wayback Machine in Proceedings of the NSF Workshop on Object-Based Concurrent Programming. 1988. Special Issue of SIGPLAN Notices.
  33. Darrell Woelk. Developing InfoSleuth Agents Using Rosette: An Actor Based Language Proceedings of the CIKM '95 Workshop on Intelligent Information Agents. 1995.
  34. 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
  35. Darryl K. Taft (2009-04-17). "माइक्रोसॉफ्ट कुकिंग अप न्यू पैरेलल प्रोग्रामिंग लैंग्वेज". Eweek.com. Archived from the original on July 29, 2012. Retrieved 2012-12-02.
  36. "धरण". Dalnefre.com. Archived from the original on 2021-02-07. Retrieved 2012-12-02.
  37. Brandauer, Stephan; et al. (2015). "Parallel objects for multicores: A glimpse at the parallel language encore". Formal Methods for Multicore Programming. Springer International Publishing: 1–56.
  38. "टट्टू भाषा". Archived from the original on 2018-09-04. Retrieved 2016-03-21.
  39. Clebsch, Sylvan; Drossopoulou, Sophia; Blessing, Sebastian; McNeil, Andy (2015). "Deny capabilities for safe, fast actors". Proceedings of the 5th International Workshop on Programming Based on Actors, Agents, and Decentralized Control - AGERE! 2015. pp. 1–12. doi:10.1145/2824815.2824816. ISBN 9781450339018. S2CID 415745. by Sylvan Clebsch, Sophia Drossopoulou, Sebastian Blessing, Andy McNeil
  40. "पी भाषा". GitHub. 2019-03-08. Archived from the original on 2021-01-15. Retrieved 2017-02-01.
  41. "पी # भाषा". GitHub. 2019-03-12. Archived from the original on 2021-03-23. Retrieved 2017-02-01.
  42. "क्लास ट्रैक्टर". Ruby-lang.org. Archived from the original on 2022-03-02. Retrieved 2022-03-02.
  43. Carlos Varela and Gul Agha (2001). "Programming Dynamically Reconfigurable Open Systems with SALSA". ACM SIGPLAN Notices. OOPSLA'2001 Intriguing Technology Track Proceedings. 36.
  44. Philipp Haller and Martin Odersky (September 2006). "Event-Based Programming without Inversion of Control" (PDF). Proc. JMLC 2006. Archived (PDF) from the original on 2020-11-09. Retrieved 2007-04-05. {{cite journal}}: Cite journal requires |journal= (help)
  45. Philipp Haller and Martin Odersky (January 2007). "Actors that Unify Threads and Events" (PDF). Technical report LAMP 2007. Archived from the original (PDF) on 2011-06-07. Retrieved 2007-12-10. {{cite journal}}: Cite journal requires |journal= (help)
  46. "Swift Language Guide - Concurrency". Archived from the original on 1 March 2022. Retrieved 11 March 2022.
  47. "acteur - 0.9.1· David Bonet · Crates.io". crates.io. Archived from the original on 2021-02-05. Retrieved 2020-04-16.
  48. Bulut, Mahmut (2019-12-15). "Bastion on Crates.io". Crates.io. Archived from the original on 2021-02-05. Retrieved 2019-12-15.
  49. "actix - 0.10.0· Rob Ede · Crates.io". crates.io. Archived from the original on 2021-05-14. Retrieved 2021-02-28.
  50. "Releases · zakgof/actr · GitHub". Github.com. Archived from the original on 2020-10-26. Retrieved 2019-04-16.
  51. "Akka 2.6.20 Released · Akka". Akka. 2022-09-06. Archived from the original on 2022-09-24. Retrieved 2022-09-24.
  52. "Akka License FAQ | @lightbend". Archived from the original on 2022-09-22. Retrieved 2022-09-24.
  53. Akka.NET v1.4.10 Stable Release GitHub - akkadotnet/akka.net: Port of Akka actors for .NET., Akka.NET, 2020-10-01, archived from the original on 2021-02-24, retrieved 2020-10-01
  54. Srinivasan, Sriram; Alan Mycroft (2008). "Kilim: Isolation-Typed Actors for Java" (PDF). European Conference on Object Oriented Programming ECOOP 2008. Cyprus. Archived (PDF) from the original on 2020-10-28. Retrieved 2016-02-25.
  55. "Releases · kilim/kilim · GitHub". Github.com. Archived from the original on 2020-10-16. Retrieved 2019-06-03.
  56. "Commit History · stevedekorte/ActorKit · GitHub". Github.com. Retrieved 2016-02-25.
  57. "Commit History · haskell-distributed/distributed-process · GitHub". Github.com. Archived from the original on 2017-03-24. Retrieved 2012-12-02.
  58. "Releases · CloudI/CloudI · GitHub". Github.com. Archived from the original on 2020-09-14. Retrieved 2021-06-21.
  59. "Tags · GNOME/clutter · GitLab". gitlab.gnome.org. Archived from the original on 2019-06-03. Retrieved 2019-06-03.
  60. "Releases · ncthbrt/nact · GitHub". GitHub. Archived from the original on 2020-11-27. Retrieved 2019-06-03.
  61. "Changes - retlang - Message based concurrency in .NET - Google Project Hosting". Archived from the original on 2015-11-24. Retrieved 2016-02-25.
  62. "jetlang-0.2.9-bin.zip - jetlang - jetlang-0.2.9-bin.zip - Message based concurrency for Java - Google Project Hosting". 2012-02-14. Archived from the original on 2016-01-14. Retrieved 2016-02-25.
  63. "GPars Releases". GitHub. Archived from the original on 2020-09-04. Retrieved 2016-02-25.
  64. "Releases · oosmos/oosmos · GitHub". GitHub. Archived from the original on 2020-11-13. Retrieved 2019-06-03.
  65. "Pulsar Design and Actors". Archived from the original on 2015-07-04.
  66. "Pulsar documentation". Archived from the original on 2013-07-26.
  67. "Changes – Pykka 2.0.0 documentation". pykka.org. Archived from the original on 2021-02-05. Retrieved 2019-06-03.
  68. "Theron – Ashton Mason". Archived from the original on 2019-03-31. Retrieved 2018-08-29.
  69. "Theron - Version 6.00.02 released". Theron-library.com. Archived from the original on 2016-03-16. Retrieved 2016-02-25.
  70. "Theron". Theron-library.com. Archived from the original on 2016-03-04. Retrieved 2016-02-25.
  71. "Releases · puniverse/quasar · GitHub". GitHub. Archived from the original on 2020-12-15. Retrieved 2019-06-03.
  72. "Changes - actor-cpp - An implementation of the actor model for C++ - Google Project Hosting". Archived from the original on 2015-11-18. Retrieved 2012-12-02.
  73. "Commit History · s4/s4 · Apache". apache.org. Archived from the original on 2016-03-06. Retrieved 2016-01-16.
  74. "Releases · actor-framework/actor-framework · GitHub". Github.com. Archived from the original on 2021-03-26. Retrieved 2020-03-07.
  75. "celluloid | RubyGems.org | your community gem host". RubyGems.org. Archived from the original on 2020-09-29. Retrieved 2019-06-03.
  76. "Community: Actor Framework, LV 2011 revision (version 3.0.7)". Decibel.ni.com. 2011-09-23. Archived from the original on 2016-10-13. Retrieved 2016-02-25.
  77. "Releases · orbit/orbit · GitHub". GitHub. Retrieved 2019-06-03.
  78. "QP Real-Time Embedded Frameworks & Tools - Browse Files at". Sourceforge.net. Archived from the original on 2021-02-24. Retrieved 2019-06-03.
  79. "Releases · Stiffstream/sobjectizer · GitHub". GitHub. Archived from the original on 2020-10-19. Retrieved 2022-05-11.
  80. "Releases · basiliscos/cpp-rotor· GitHub". GitHub. Archived from the original on 2020-09-15. Retrieved 2022-05-17.
  81. "Releases · dotnet/orleans · GitHub". GitHub. Archived from the original on 2020-12-04. Retrieved 2022-09-21.
  82. "FunctionalJava releases". GitHub. Archived from the original on 2021-01-15. Retrieved 2018-08-23.


अग्रिम पठन


बाहरी संबंध