संयुक्त-गणना

From Vigyanwiki

संयुक्त-गणना आई एन आर आई ए में विकसित एक प्रक्रिया गणना है। संयुक्त-गणना को वितरित प्रोग्रामिंग भाषाओं के अभिकल्पना के लिए एक औपचारिक आधार प्रदान करने के लिए विकसित किया गया था, और इसलिए निश्चयपूर्वक अन्य प्रक्रिया गणना में पाए जाने वाले संचार निर्माणों से बचा जाता है, जैसे कि तुल्यकालिक मिलन स्थल संचार, जो एक वितरित व्यवस्था में क्रियान्वित करना दुष्कर है।[1] इस सीमा के अतिरिक्त, संयुक्त-गणना पूर्ण π-कलन के समान अभिव्यंजक है। संयुक्त-गणना में π-कलन के एनकोडिंग, जो इसके विपरीत भी संभव है, प्रदर्शित किए गए हैं।[2]

संयुक्त-गणना प्रक्रिया कलन के π-कलन परिवार का सदस्य है, और इसके मूल में, कई स्थिर प्रतिबंधों के साथ एक अतुल्यकालिक π-कलन माना जा सकता है:

  • क्षेत्र प्रतिबंध, अभिग्रहण, और प्रतिरूपित अभिग्रहण को वाक्यात्मक रूप से एक ही निर्माण, परिभाषा में विलय कर दिया गया है;
  • संचार केवल परिभाषित नामों पर होता है;
  • प्रत्येक परिभाषित नाम के लिए वास्तव में एक प्रतिकृति अभिग्रहण होता है।

चूंकि, प्रोग्रामिंग के लिए एक भाषा के रूप में, संयुक्त-गणना π-कलन पर कम से कम एक सुविधा प्रदान करता है - अर्थात् बहु-मार्ग संयुक्त पैटर्न का उपयोग, एक साथ कई चैनलों से संदेशों के विरुद्ध मिलान करने की क्षमता है।[3]

कार्यान्वयन

संयुक्त-गणना पर आधारित भाषाएँ

संयुक्त-गणना प्रोग्रामिंग भाषा संयुक्त-गणना प्रोसेस कलन पर आधारित एक नई भाषा है। इसे ओकैमल (प्रोग्रामिंग भाषा) में लिखे गए दुभाषिया के रूप में क्रियान्वित किया गया है, और स्थिर रूप से टाइप किए गए वितरित प्रोग्रामिंग, पारदर्शी दूरस्थ संचार, प्रतिनिधि-आधारित गतिशीलता और कुछ विफलता-पहचान का समर्थन करता है।[4]

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

संयुक्त-गणना के कई कार्यान्वयन उपस्थिता प्रोग्रामिंग भाषाओं के विस्तार के रूप में किए गए थे:

  • जोकैमल,ओकैमल का एक संस्करण है जो संयुक्त-गणना प्रिमिटिव के साथ विस्तारित है
  • पॉलीफोनिक C# और इसके उत्तराधिकारी Cω विस्तार C# (प्रोग्रामिंग भाषा)|
  • MC# और समांतर C# पॉलीफोनिक C# का विस्तार करें
  • जावा में सम्मलित हों जावा का विस्तार करता है
  • एक समवर्ती मूल प्रस्ताव जो संयुक्त-गणना का उपयोग करता है
  • जेएरलांग (जे ज्वाइन के लिए है, एर्जांग जेवीएम के लिए एरलैंग है)[5]

अन्य प्रोग्रामिंग भाषाओं में एम्बेडिंग

ये कार्यान्वयन अंतर्निहित प्रोग्रामिंग भाषा को नहीं बदलते हैं लेकिन एक कस्टम लाइब्रेरी या डीएसएल के माध्यम से गणना संचालन में सम्मलित होती हैं:

  • स्कालाजॉइन्स और चाइमिस्ट पुस्तकालय स्काला (प्रोग्रामिंग भाषा) में हैं
  • ईनार कार्टुनेन द्वारा ज्वाइनएचएस और सैम्युअल यलोप द्वारा सिलोप/ज्वाइ-भाषा हास्केल में संयुक्त-गणना के लिए डीएसएल हैं
  • जॉइनैड्स - F#(प्रोग्रामिंग लैंग्वेज) में संयुक्त-गणना के विभिन्न कार्यान्वयन
  • कोकोजॉइन आईओएस और मैक ओएस एक्स के लिए उद्देश्य सी में एक प्रायोगिक कार्यान्वयन है
  • संयुक्त पायथन लाइब्रेरी पायथन 3 में है
  • C++ बूस्ट के माध्यम से[6] (2009 से बूस्ट के लिए, ca. v. 40, वर्तमान (दिसंबर '19) 72 है)।

संदर्भ

  1. Cedric Fournet, Georges Gonthier (1995). "रिफ्लेक्सिव चैम और जॉइन-कैलकुलस". {{cite journal}}: Cite journal requires |journal= (help), pg. 1
  2. Cedric Fournet, Georges Gonthier (1995). "रिफ्लेक्सिव चैम और जॉइन-कैलकुलस". {{cite journal}}: Cite journal requires |journal= (help), pg. 2
  3. Petricek, Tomas. "जॉइनैड्स (IV.) - जॉइन कैलकुलस का उपयोग करके समवर्ती". tomasp.net. Retrieved 2023-01-24.
  4. Cedric Fournet, Georges Gonthier (2000). "The Join Calculus: A Language for Distributed Mobile Programming": 268–332. {{cite journal}}: Cite journal requires |journal= (help)
  5. "JErlang: Erlang with Joins". Archived from the original on 2017-12-08. Retrieved 2015-04-18.
  6. Yigong Liu - Join-Asynchronous Message Coordination and Concurrency Library

बाहरी संबंध