ऐक्टर मॉडल

From Vigyanwiki
Revision as of 11:44, 15 May 2023 by alpha>Indicwiki (Created page with "{{short description|Model of concurrent computation}} {{Programming paradigms}} कंप्यूटर विज्ञान में अभिनेता मॉड...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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

अभिनेता मॉडल की उत्पत्ति 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]


बाद में अभिनेता प्रोग्रामिंग भाषाएं

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

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

Name Status Latest release License Languages
Xcraft Goblins Active 2022-08-30 MIT JavaScript
ReActed Active 2022-11-30 Apache 2.0 Java
Acteur Active 2020-04-16[47] Apache-2.0 / MIT Rust
Bastion Active 2020-08-12[48] Apache-2.0 / MIT Rust
Actix Active 2020-09-11[49] MIT Rust
Aojet Active 2016-10-17 MIT Swift
Actor Active 2017-03-09 MIT Java
Actor4j Active 2020-01-31 Apache 2.0 Java
Actr Active 2019-04-09[50] Apache 2.0 Java
Vert.x Active 2018-02-13 Apache 2.0 Java, Groovy, Javascript, Ruby, Scala, Kotlin, Ceylon
ActorFx Inactive 2013-11-13 Apache 2.0 .NET
Akka (toolkit) Active 2022-09-06[51] Commercial[52] (from 2.7.0, Apache 2.0 up to 2.6.20) Java and Scala
Akka.NET Active 2020-08-20[53] Apache 2.0 .NET
Dapr Active 2019-10-16 Apache 2.0 Java, .NET Core, Go, Javascript, Python, Rust and C++
DOTNETACTORS Active 2021-06-14 MIT .NET, C#, Azure Service Bus
Remact.Net Inactive 2016-06-26 MIT .NET, Javascript
Ateji PX Inactive ? ? Java
czmq Active 2016-11-10 MPL-2 C
F# MailboxProcessor Active same as F# (built-in core library) Apache License F#
Korus Active 2010-02-04 GPL 3 Java
Kilim[54] Active 2018-11-09[55] MIT Java
ActorFoundry (based on Kilim) Inactive 2008-12-28 ? Java
ActorKit Active 2011-09-13[56] BSD Objective-C
Cloud Haskell Active 2015-06-17[57] BSD Haskell
CloudI Active 2021-05-27[58] MIT ATS, C/C++, Elixir/Erlang/LFE, Go, Haskell, Java, Javascript, OCaml, Perl, PHP, Python, Ruby
Clutter Active 2017-05-12[59] LGPL 2.1 C, C++ (cluttermm), Python (pyclutter), Perl (perl-Clutter)
NAct Inactive 2012-02-28 LGPL 3.0 .NET
Nact Archived 2021-02-05 at the Wayback Machine Active 2018-06-06[60] Apache 2.0 JavaScript/ReasonML
Retlang Inactive 2011-05-18[61] New BSD .NET
JActor Inactive 2013-01-22 LGPL Java
Jetlang Active 2013-05-30[62] New BSD Java
Haskell-Actor Active? 2008 New BSD Haskell
GPars Active 2014-05-09[63] Apache 2.0 Groovy
OOSMOS Active 2019-05-09[64] GPL 2.0 and commercial (dual licensing) C. C++ friendly
Panini Active 2014-05-22 MPL 1.1 Programming Language by itself
PARLEY Active? 2007-22-07 GPL 2.1 Python
Peernetic Active 2007-06-29 LGPL 3.0 Java
Picos Active 2020-02-04 MIT KRL
PostSharp Active 2014-09-24 Commercial / Freemium .NET
Pulsar Active 2016-07-09[65] New BSD Python
Pulsar Active 2016-02-18[66] LGPL/Eclipse Clojure
Pykka Active 2019-05-07[67] Apache 2.0 Python
Termite Scheme Active? 2009-05-21 LGPL Scheme (Gambit implementation)
Theron Inactive[68] 2014-01-18[69] MIT[70] C++
Thespian Active 2020-03-10 MIT Python
Quasar Active 2018-11-02[71] LGPL/Eclipse Java
Libactor Active? 2009 GPL 2.0 C
Actor-CPP Active 2012-03-10[72] GPL 2.0 C++
S4 Inactive 2012-07-31[73] Apache 2.0 Java
C++ Actor Framework (CAF) Active 2020-02-08[74] Boost Software License 1.0 and BSD 3-Clause C++11
Celluloid Active 2018-12-20[75] MIT Ruby
LabVIEW Actor Framework Active 2012-03-01[76] National Instruments SLA LabVIEW
LabVIEW Messenger Library Active 2021-05-24 BSD LabVIEW
Orbit Active 2019-05-28[77] New BSD Java
QP frameworks for real-time embedded systems Active 2019-05-25[78] GPL 2.0 and commercial (dual licensing) C and C++
libprocess Active 2013-06-19 Apache 2.0 C++
SObjectizer Archived 2020-08-10 at the Wayback Machine Active 2021-12-28[79] New BSD C++17
rotor Active 2022-04-23[80] MIT License C++17
Orleans Active 2022-08-15[81] MIT License C#/.NET
Skynet Active 2020-12-10 MIT License C/Lua
Reactors.IO Active 2016-06-14 BSD License Java/Scala
libagents Active 2020-03-08 Free software license C++11
Proto.Actor Active 2021-01-05 Free software license Go, C#, Python, JavaScript, Kotlin
FunctionalJava Archived 2021-04-22 at the Wayback Machine Active 2018-08-18[82] BSD 3-Clause Java
Riker Active 2019-01-04 MIT License Rust
Comedy Active 2019-03-09 EPL 1.0 JavaScript
VLINGO XOOM Actors Active 2023-02-15 Mozilla Public License 2.0 Java, Kotlin, JVM languages, C# .NET
wasmCloud Active 2021-03-23 Apache 2.0 WebAssembly (Rust, TinyGo, Zig, AssemblyScript)
ray Active 2020-08-27 Apache 2.0 Python
cell Active 2012-08-02 New BSD License Python
go-actor Active 2022-08-16 GPL 3.0 Golang
Sento Active 2022-11-21 Apache 2.0 Common Lisp


यह भी देखें

संदर्भ

  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.


अग्रिम पठन


बाहरी संबंध