ज्वाइन जावा: Difference between revisions
No edit summary |
|||
| Line 17: | Line 17: | ||
* पैटर्न के मिलान के क्रम को निर्धारित करने के लिए वर्ग संशोधक का क्रम निर्धारित करें | * पैटर्न के मिलान के क्रम को निर्धारित करने के लिए वर्ग संशोधक का क्रम निर्धारित करें | ||
सबसे लोकप्रिय प्रोग्रामिंग भाषाओं में संगामिति को सेमाफोर और मॉनिटर जैसे निर्माणों का उपयोग करके कार्यान्वित किया जाता है। पुस्तकालय उभर रहे हैं (जैसे जावा संगामिति पुस्तकालय | सबसे लोकप्रिय प्रोग्रामिंग भाषाओं में संगामिति को सेमाफोर और मॉनिटर जैसे निर्माणों का उपयोग करके कार्यान्वित किया जाता है। पुस्तकालय उभर रहे हैं (जैसे जावा संगामिति पुस्तकालय जेएसआर-166) जो उच्च-स्तरीय संगामिति शब्दार्थ प्रदान करते हैं। कम्यूनिकेटिंग सिक्वेंशियल प्रोसेस (सीएसपी), कैलकुलस ऑफ कम्युनिकेटिंग सिस्टम्स (सीसीएस) और पीआई में समवर्ती प्रक्रियाओं के इंटरफेस पर घटनाओं की संरचना के माध्यम से स्पष्ट रूप से परिभाषित उच्च-स्तरीय समकालीन व्यवहार होते हैं। इसके विपरीत, ज्वाइन कैलकुलस में, कमी नियमों के रूप में परिभाषित घटनाओं के स्थानीय संयोजन के आधार पर स्पष्ट समकालीन है। जोड़ना शब्दार्थ प्रक्रियाओं और चैनलों के गतिशील निर्माण और विनाश सहित मॉड्यूलरकरण के वस्तु-उन्मुख विचार को भंग किए बिना समकालीन की स्पष्ट अभिव्यक्ति प्रदान करने का प्रयास करते हैं। | ||
'''जावा''' से जुड़ें भाषा वस्तुतः सभी प्रकाशित समवर्ती पैटर्न को निम्न-स्तरीय मॉनिटर कॉल के लिए स्पष्ट सहारा के बिना व्यक्त कर सकती है। '''सामान्य तौर पर''', जावा प्रोग्राम में शामिल हों उनके जावा समकक्षों की तुलना में अधिक संक्षिप्त हैं। ज्वाइन जावा में शुरू किए गए ओवरहेड को ज्वाइन कैलकुलस से प्राप्त उच्च-स्तरीय अभिव्यक्तियों द्वारा प्रबंधित किया जा सकता है। मॉनिटर (प्रतीक्षा करें और सूचित करें) से जुड़े सिंक्रोनाइज़ेशन एक्सप्रेशन जो सामान्य रूप से विधियों के शरीर में स्थित होते हैं, उन्हें जॉइन जावा एक्सप्रेशंस (जॉइन मेथड्स) से बदला जा सकता है जो विधि हस्ताक्षर का हिस्सा बनते हैं। | |||
=== जुड़ने के तरीके === | === जुड़ने के तरीके === | ||
ज्वाइन मेथड को दो या अधिक जॉइन फ़्रैगमेंट्स द्वारा परिभाषित किया जाता है। एक जॉइन विधि होगी | '''ज्वाइन''' मेथड को दो या अधिक जॉइन फ़्रैगमेंट्स द्वारा परिभाषित किया जाता है। एक जॉइन विधि होगी | ||
ज्वाइन पैटर्न के सभी अंशों को बुलाए जाने के बाद निष्पादित करें। | ज्वाइन पैटर्न के सभी अंशों को बुलाए जाने के बाद निष्पादित करें। | ||
यदि रिटर्न प्रकार एक मानक जावा प्रकार है तो अग्रणी टुकड़ा होगा | यदि रिटर्न प्रकार एक मानक जावा प्रकार है तो अग्रणी टुकड़ा होगा | ||
कॉल करने वाले को तब तक ब्लॉक करें जब तक कि जॉइन पैटर्न पूरा न हो जाए और विधि न हो जाए | कॉल करने वाले को तब तक ब्लॉक करें जब तक कि जॉइन पैटर्न पूरा न हो जाए और विधि न हो जाए | ||
निष्पादित। अगर रिटर्न टाइप <STRONG>सिग्नल</STRONG> टाइप का है तो | निष्पादित। अगर रिटर्न टाइप <STRONG>सिग्नल</STRONG> टाइप का है तो | ||
अग्रणी टुकड़ा तुरंत वापस आ जाएगा। सभी अनुगामी टुकड़े हैं | अग्रणी टुकड़ा तुरंत वापस आ जाएगा। सभी अनुगामी टुकड़े हैं | ||
अतुल्यकालिक इसलिए कॉल करने वाले को ब्लॉक नहीं करेगा। | अतुल्यकालिक इसलिए कॉल करने वाले को ब्लॉक नहीं करेगा। | ||
Revision as of 20:42, 2 June 2023
This article relies excessively on references to primary sources. (March 2011) (Learn how and when to remove this template message) |
| Paradigm | Procedural, Reflective |
|---|---|
| द्वारा डिज़ाइन किया गया | G. Stewart von Itzstein |
| पहली प्रस्तुति | 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() {
}
}
अतुल्यकालिक तरीके
एसिंक्रोनस विधियों को सिग्नल का उपयोग करके परिभाषित किया जाता है वापसी का प्रकार। इसमें शून्य जैसी ही विशेषताएं हैं type सिवाय इसके कि विधि तुरंत वापस आ जाएगी। जब एक अतुल्यकालिक विधि कहा जाता है विधि के शरीर को निष्पादित करने के लिए एक नया धागा बनाया जाता है।
उदाहरण:
class ThreadExample {
signal thread(SomeObject x) {
//this code will execute in a new thread
}
}
संबंधित भाषाएँ
पॉलीफोनिक सी तेज निकटतम संबंधित भाषा है।
Cω पॉलीफोनिक C शार्प का उत्तराधिकारी है।
हार्डवेयर जावा में शामिल हों लैंग्वेज को आगे बढ़ाया हार्डवेयर शब्दार्थ को लागू करने के लिए जावा से जुड़ें। इस भाषा ने जॉइन जावा के शब्दार्थ को FPGA अनुप्रयोगों तक विस्तारित किया।
संदर्भ
- 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.