ज्वाइन जावा: Difference between revisions

From Vigyanwiki
No edit summary
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
{{Short description|Programming language}}
{{primarysources|date=March 2011}}
{{Infobox programming language
{{Infobox programming language
| name                   = Join Java
| name = ज्वाइन जावा
| paradigm               = [[Procedural programming|Procedural]], [[Reflective programming|Reflective]]
| paradigm = [[Procedural programming|Procedural]], [[Reflective programming|Reflective]]
| released               = {{Start date|2000}}
| released = {{Start date|2000}}
| designer               = [http://joinjava.unisa.edu.au/members.htm G. Stewart von Itzstein]
| designer = [http://joinjava.unisa.edu.au/members.htm G. Stewart von Itzstein]
| influenced by         = [[Java (programming language)|Java]]
| influenced by = [[Java (programming language)|Java]]
| website               = [http://joinjava.unisa.edu.au/ joinjava.unisa.edu.au]
| website = [http://joinjava.unisa.edu.au/ joinjava.unisa.edu.au]
}}
}}
'''संबद्ध जावा''' एक [[ प्रोग्रामिंग भाषा |प्रोग्रामिंग भाषा]] है जो [[ सम्मिलित-पैटर्न ]] पर आधारित है जो [[ जोड़-गणना |जोड़-गणना]] के संबद्ध शब्दार्थ के साथ मानक [[ जावा (प्रोग्रामिंग भाषा) | जावा]]  का विस्तार करती है। यह [[दक्षिण ऑस्ट्रेलिया विश्वविद्यालय]] में डॉ. वॉन इट्ज़स्टीन द्वारा रीकॉन्फिगरेबल कंप्यूटिंग लैब के भीतर लिखा गया था।


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


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


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


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


उदाहरण:<syntaxhighlight lang="java">
उदाहरण:<syntaxhighlight lang="java">
Line 34: Line 33:
</syntaxhighlight>
</syntaxhighlight>


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


उदाहरण:
उदाहरण:
Line 51: Line 50:
</syntaxhighlight>
</syntaxhighlight>


=== अतुल्यकालिक प्रारूप ===
=== एसिंक्रोनस मेथड ===
अतुल्यकालिक प्रारूप को <STRONG>सिग्नल</STRONG> रिटर्न प्रकार का उपयोग करके परिभाषित किया जाता है। इसमें <STRONG>शून्य</STRONG> प्रकार के समान विशेषताएं हैं '''सिवाय''' इसके कि तरीका तुरंत वापस आ जाएगी। जब अतुल्यकालिक तरीके के बॉडी को निष्पादित करने के लिए नया क्रम बनाया जाता है।
एसिंक्रोनस मेथड को <STRONG>सिग्नल</STRONG> रिटर्न प्रकार का उपयोग करके परिभाषित किया जाता है। इसमें <STRONG>शून्य</STRONG> प्रकार के समान विशेषताएं हैं '''सिवाय''' इसके कि तरीका तुरंत वापस आ जाएगी। जब एसिंक्रोनस तरीके के बॉडी को निष्पादित करने के लिए नया क्रम बनाया जाता है।


उदाहरण:
उदाहरण:
Line 64: Line 63:


== संबंधित भाषाएँ ==
== संबंधित भाषाएँ ==
[[ पॉलीफोनिक सी तेज | पॉलीफोनिक सी शार्प]] निकटतम संबंधित भाषा है।<br>सीω पॉलीफोनिक सी शार्प का उत्तराधिकारी है।
[[ पॉलीफोनिक सी तेज | पॉलीफोनिक सी शार्प]] निकटतम संबंधित लैंग्वेज है।<br>सीω पॉलीफोनिक सी शार्प का उत्तराधिकारी है।


[[हार्डवेयर जावा में शामिल हों]] लैंग्वेज को आगे बढ़ाया हार्डवेयर शब्दार्थ को लागू करने के लिए संबद्ध जावा। इस भाषा ने संबद्ध जावा के शब्दार्थ को [[FPGA|एफपीजीए]] अनुप्रयोगों तक विस्तारित किया।
[[हार्डवेयर जावा में शामिल हों|हार्डवेयर जावा में सम्मिलित हों]] लैंग्वेज को आगे बढ़ाया हार्डवेयर शब्दार्थ को लागू करने के लिए ज्वाइन जावा। इस लैंग्वेज ने ज्वाइन जावा के शब्दार्थ को [[FPGA|एफपीजीए]] अनुप्रयोगों तक विस्तारित किया।


== संदर्भ ==
== संदर्भ ==

Latest revision as of 13:13, 26 October 2023

ज्वाइन जावा
ParadigmProcedural, Reflective
द्वारा डिज़ाइन किया गयाG. Stewart von Itzstein
पहली प्रस्तुति2000 (2000)
वेबसाइटjoinjava.unisa.edu.au
Influenced by
Java

ज्वाइन जावा एक प्रोग्रामिंग लैंग्वेज है जो सम्मिलित-पैटर्न पर आधारित है जो जोड़-गणना के ज्वाइन शब्दार्थ के साथ मानक जावा का विस्तार करती है। यह दक्षिण ऑस्ट्रेलिया विश्वविद्यालय में डॉ. वॉन इट्ज़स्टीन द्वारा रीकॉन्फिगरेबल कंप्यूटिंग लैब के भीतर लिखा गया था।

लैंग्वेज की विशेषताएं

ज्वाइन जावा विस्तारण तीन नए लैंग्वेज निर्माणों का परिचय देता है:

  • ज्वाइन के तरीके
  • एसिंक्रोनस तरीके
  • पैटर्न के मिलान के क्रम को निर्धारित करने के लिए वर्ग संशोधक का क्रम निर्धारित करें

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

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

ज्वाइन के तरीके

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

उदाहरण:

 class JoinExample {
    int fragment1() & fragment2(int x) {
       //will return value of x
       //to caller of fragment1
       return x;
    }
 }

आर्डरएड मॉडीफिएर

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

उदाहरण:

 class ordered SimpleJoinPattern {
    void A() & B() {
    }
    void A() & C() {
    }
    void A() & D() {
    }
    signal D() & E() {
    }
 }

एसिंक्रोनस मेथड

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

उदाहरण:

 class ThreadExample {
    signal thread(SomeObject x) {
       //this code will execute in a new thread
    }
 }

संबंधित भाषाएँ

पॉलीफोनिक सी शार्प निकटतम संबंधित लैंग्वेज है।
सीω पॉलीफोनिक सी शार्प का उत्तराधिकारी है।

हार्डवेयर जावा में सम्मिलित हों लैंग्वेज को आगे बढ़ाया हार्डवेयर शब्दार्थ को लागू करने के लिए ज्वाइन जावा। इस लैंग्वेज ने ज्वाइन जावा के शब्दार्थ को एफपीजीए अनुप्रयोगों तक विस्तारित किया।

संदर्भ

  • von Itzstein, G, Stewart. and Jasiunas, M (2003). On Implementing High Level Concurrency in Java. Advances in Computer Systems Architecture 2003, Aizu Japan, Springer Verlag.
  • von Itzstein, G, Stewart. and D. Kearney (2002). Applications of Join Java. Proceedings of the Seventh Asia Pacific Computer Systems Architecture Conference ACSAC'2002. Melbourne, Australia, Australian Computer Society: 1-20.
  • von Itzstein, G, Stewart. and D. Kearney (2004). The Expression of Common Concurrency Patterns in Join Java. International Conference on Parallel and Distributed Processing Techniques and Applications, Las Vegas.
  • Hopf, J., von Itzstein, G, Stewart, et al. (2002). Hardware Join Java: A High Level Language For Reconfigurable Hardware Development. International Conference on Field Programmable Technology, Hong Kong.


बाहरी संबंध