एक्सम (प्रोग्रामिंग भाषा): Difference between revisions
No edit summary |
No edit summary |
||
Line 16: | Line 16: | ||
| website = [http://msdn.microsoft.com/en-us/devlabs/dd795202.aspx Axum at DevLabs] | | website = [http://msdn.microsoft.com/en-us/devlabs/dd795202.aspx Axum at DevLabs] | ||
}} | }} | ||
एक्सम ( | सामान्यतः '''एक्सम''' (प्रथम कोडनेम '''मेस्ट्रो''') [[डोमेन-विशिष्ट भाषा|डोमेन-विशिष्ट भाषा समवर्ती]] [[प्रोग्रामिंग भाषा]] है, जो [[अभिनेता मॉडल]] पर आधारित होती है, जो सन्न 2009 और सन्न 2011 के मध्य [[माइक्रोसॉफ्ट]] द्वारा सक्रिय विकास के तहत थी।<ref name="c9">{{cite web | ||
|url=http://channel9.msdn.com/shows/Going+Deep/Maestro-A-Managed-Domain-Specific-Language-For-Concurrent-Programming/ | |url=http://channel9.msdn.com/shows/Going+Deep/Maestro-A-Managed-Domain-Specific-Language-For-Concurrent-Programming/ | ||
|title=Maestro: A Managed Domain Specific Language For Concurrent Programming | |title=Maestro: A Managed Domain Specific Language For Concurrent Programming | ||
Line 24: | Line 24: | ||
|archivedate=7 April 2009 | |archivedate=7 April 2009 | ||
|url-status=live | |url-status=live | ||
}}</ref> | }}</ref> <ref name="shutdown">{{cite web | ||
|url=http://blogs.msdn.com/b/maestroteam/archive/2011/02/28/the-state-of-axum.aspx | |url=http://blogs.msdn.com/b/maestroteam/archive/2011/02/28/the-state-of-axum.aspx | ||
|title=The State of Axum | |title=The State of Axum | ||
|publisher=Niklas Gustafsson | |publisher=Niklas Gustafsson | ||
|accessdate=2011-02-28 | |accessdate=2011-02-28 | ||
}}</ref> यह | }}</ref> यह सी (प्रोग्रामिंग भाषा)-जैसे सिंटैक्स का उपयोग करते हुए .NET [[ सामान्य भाषा रनटाइम |सामान्य भाषा रनटाइम]] पर आधारित [[ ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग |ऑब्जेक्ट ओरिएंटेड भाषा]] होती है, जो डोमेन-विशिष्ट भाषा होने के नाते, सॉफ़्टवेयर एप्लिकेशन के भागों के विकास के लिए अभिप्रेत होता है। जो कि समवर्ती के लिए उपयुक्त है। किंतु इसमें पर्याप्त सामान्य-उद्देश्य वाले निर्माण होते हैं जिन्हें समवर्ती घटकों के अनुक्रमिक भागों के लिए सामान्य-उद्देश्य प्रोग्रामिंग भाषा जैसे सी शार्प (प्रोग्रामिंग भाषा) पर स्विच करने की आवश्यकता नहीं होती है।<ref name="c9"/> | ||
एक्सम में प्रोग्रामिंग का मुख्य मुहावरा एजेंट (या अभिनेता) है, जो भिन्न इकाई है जो अन्य एजेंटों के साथ समानांतर में निष्पादित होता है।<ref name="isolation">{{cite web | एक्सम में प्रोग्रामिंग का मुख्य मुहावरा एजेंट (या अभिनेता) होता है, जो भिन्न इकाई होती है जो अन्य एजेंटों के साथ समानांतर में निष्पादित होता है।<ref name="isolation">{{cite web | ||
|url=http://blogs.msdn.com/maestroteam/archive/2009/02/27/we-haven-t-forgotten-about-other-models-honest.aspx | |url=http://blogs.msdn.com/maestroteam/archive/2009/02/27/we-haven-t-forgotten-about-other-models-honest.aspx | ||
|title=We haven't forgotten about other models – honest! | |title=We haven't forgotten about other models – honest! | ||
Line 37: | Line 37: | ||
|author=Philips Joshua | |author=Philips Joshua | ||
|accessdate=2009-04-16 | |accessdate=2009-04-16 | ||
| archiveurl= https://web.archive.org/web/20090508055636/http://blogs.msdn.com/maestroteam/archive/2009/02/27/we-haven-t-forgotten-about-other-models-honest.aspx| archivedate= 8 May 2009 | url-status= live}}</ref> एक्सम की भाषा में, इसे भिन्न आइसोलेशन डोमेन में क्रियान्वित करने वाले एजेंटों के रूप में संदर्भित किया जाता | | archiveurl= https://web.archive.org/web/20090508055636/http://blogs.msdn.com/maestroteam/archive/2009/02/27/we-haven-t-forgotten-about-other-models-honest.aspx| archivedate= 8 May 2009 | url-status= live}}</ref> चूँकि एक्सम की भाषा में, इसे भिन्न आइसोलेशन डोमेन में क्रियान्वित करने वाले एजेंटों के रूप में संदर्भित किया जाता है।<ref name="isolation"/> अतः डोमेन के अंदर तत्काल वस्तुओं को दूसरे से सीधे एक्सेस नहीं किया जा सकता है।<ref>{{cite web | ||
|url=http://blogs.msdn.com/maestroteam/archive/2009/02/27/isolation-in-maestro.aspx | |url=http://blogs.msdn.com/maestroteam/archive/2009/02/27/isolation-in-maestro.aspx | ||
|title=Isolation in Maestro | |title=Isolation in Maestro | ||
Line 43: | Line 43: | ||
|author=Niklas Gustafsson | |author=Niklas Gustafsson | ||
|accessdate=2009-04-16 | |accessdate=2009-04-16 | ||
| archiveurl= https://web.archive.org/web/20090508000455/http://blogs.msdn.com/maestroteam/archive/2009/02/27/isolation-in-maestro.aspx| archivedate= 8 May 2009 | url-status= live}}</ref> एजेंट शिथिल रूप से युग्मित हैं ( | | archiveurl= https://web.archive.org/web/20090508000455/http://blogs.msdn.com/maestroteam/archive/2009/02/27/isolation-in-maestro.aspx| archivedate= 8 May 2009 | url-status= live}}</ref> इस प्रकार एजेंट शिथिल रूप से युग्मित होता हैं (अर्थात्, एजेंटों के मध्य निर्भरता की संख्या न्यूनतम होती है) और मेमोरी जैसे संसाधनों को साझा नहीं करते हैं (सी शार्प (प्रोग्रामिंग लैंग्वेज) और समान भाषाओं के साझा मेमोरी (इंटरप्रोसेस कम्युनिकेशन) मॉडल के विपरीत होती है। इसके अतिरिक्त [[संदेश देना|संदेश पासिंग]] मॉडल का उपयोग किया जाता है।<ref name="isolation"/> एजेंटों को समन्वयित करने या किसी एजेंट को दूसरे के संसाधनों का अनुरोध करने के लिए, एजेंट को स्पष्ट संदेश भेजा जा सकता है। इस प्रकार एक्सम इसे सुविधाजनक बनाने के लिए चैनल प्रदान करता है। | ||
एजेंट उदाहरणों के मध्य संवाद करने के लिए चैनल को दिशात्मक मार्ग के रूप में माना जा सकता है। चैनल ऑब्जेक्ट के सदस्य कार्य, एजेंट उदाहरण के लिए बाध्य होने के बाद, इसके साथ संवाद करने के लिए उपयोग किया जा सकता है। चैनल में इनपुट और आउटपुट पोर्ट होते हैं, जो [[कतार (डेटा संरचना)]] होते हैं जिनका उपयोग किसी एजेंट को डेटा भेजने या किसी से डेटा प्राप्त करने के लिए किया जाता है। एजेंटों के मध्य संचार को समन्वयित करने के लिए, एक्सम प्रत्येक चैनल को संचार के लिए उपयोगकर्ता परिभाषित प्रोटोकॉल रखने की अनुमति देता है। प्रोटोकॉल को [[राज्य मशीन]] के रूप में परिभाषित किया गया है।<ref>{{cite web | एजेंट उदाहरणों के मध्य संवाद करने के लिए चैनल को दिशात्मक मार्ग के रूप में माना जा सकता है। चैनल ऑब्जेक्ट के सदस्य कार्य, एजेंट उदाहरण के लिए बाध्य होने के बाद, इसके साथ संवाद करने के लिए उपयोग किया जा सकता है। चैनल में इनपुट और आउटपुट पोर्ट होते हैं, जो [[कतार (डेटा संरचना)]] होते हैं जिनका उपयोग किसी एजेंट को डेटा भेजने या किसी से डेटा प्राप्त करने के लिए किया जाता है। एजेंटों के मध्य संचार को समन्वयित करने के लिए, एक्सम प्रत्येक चैनल को संचार के लिए उपयोगकर्ता परिभाषित प्रोटोकॉल रखने की अनुमति देता है। प्रोटोकॉल को [[राज्य मशीन]] के रूप में परिभाषित किया गया है।<ref>{{cite web |
Revision as of 16:05, 3 June 2023
File:Axum Banner.png | |
Developer | Microsoft |
---|---|
पहली प्रस्तुति | May 8, 2009 |
Stable release | Community Technology Preview
/ May 8, 2009 |
प्लेटफॉर्म | x86, x86-64 and Itanium |
ओएस | Windows XP Windows Server 2003 Windows Vista Windows Server 2008 Windows 7 |
लाइसेंस | Closed source |
वेबसाइट | Axum at DevLabs |
सामान्यतः एक्सम (प्रथम कोडनेम मेस्ट्रो) डोमेन-विशिष्ट भाषा समवर्ती प्रोग्रामिंग भाषा है, जो अभिनेता मॉडल पर आधारित होती है, जो सन्न 2009 और सन्न 2011 के मध्य माइक्रोसॉफ्ट द्वारा सक्रिय विकास के तहत थी।[1] [2] यह सी (प्रोग्रामिंग भाषा)-जैसे सिंटैक्स का उपयोग करते हुए .NET सामान्य भाषा रनटाइम पर आधारित ऑब्जेक्ट ओरिएंटेड भाषा होती है, जो डोमेन-विशिष्ट भाषा होने के नाते, सॉफ़्टवेयर एप्लिकेशन के भागों के विकास के लिए अभिप्रेत होता है। जो कि समवर्ती के लिए उपयुक्त है। किंतु इसमें पर्याप्त सामान्य-उद्देश्य वाले निर्माण होते हैं जिन्हें समवर्ती घटकों के अनुक्रमिक भागों के लिए सामान्य-उद्देश्य प्रोग्रामिंग भाषा जैसे सी शार्प (प्रोग्रामिंग भाषा) पर स्विच करने की आवश्यकता नहीं होती है।[1]
एक्सम में प्रोग्रामिंग का मुख्य मुहावरा एजेंट (या अभिनेता) होता है, जो भिन्न इकाई होती है जो अन्य एजेंटों के साथ समानांतर में निष्पादित होता है।[3] चूँकि एक्सम की भाषा में, इसे भिन्न आइसोलेशन डोमेन में क्रियान्वित करने वाले एजेंटों के रूप में संदर्भित किया जाता है।[3] अतः डोमेन के अंदर तत्काल वस्तुओं को दूसरे से सीधे एक्सेस नहीं किया जा सकता है।[4] इस प्रकार एजेंट शिथिल रूप से युग्मित होता हैं (अर्थात्, एजेंटों के मध्य निर्भरता की संख्या न्यूनतम होती है) और मेमोरी जैसे संसाधनों को साझा नहीं करते हैं (सी शार्प (प्रोग्रामिंग लैंग्वेज) और समान भाषाओं के साझा मेमोरी (इंटरप्रोसेस कम्युनिकेशन) मॉडल के विपरीत होती है। इसके अतिरिक्त संदेश पासिंग मॉडल का उपयोग किया जाता है।[3] एजेंटों को समन्वयित करने या किसी एजेंट को दूसरे के संसाधनों का अनुरोध करने के लिए, एजेंट को स्पष्ट संदेश भेजा जा सकता है। इस प्रकार एक्सम इसे सुविधाजनक बनाने के लिए चैनल प्रदान करता है।
एजेंट उदाहरणों के मध्य संवाद करने के लिए चैनल को दिशात्मक मार्ग के रूप में माना जा सकता है। चैनल ऑब्जेक्ट के सदस्य कार्य, एजेंट उदाहरण के लिए बाध्य होने के बाद, इसके साथ संवाद करने के लिए उपयोग किया जा सकता है। चैनल में इनपुट और आउटपुट पोर्ट होते हैं, जो कतार (डेटा संरचना) होते हैं जिनका उपयोग किसी एजेंट को डेटा भेजने या किसी से डेटा प्राप्त करने के लिए किया जाता है। एजेंटों के मध्य संचार को समन्वयित करने के लिए, एक्सम प्रत्येक चैनल को संचार के लिए उपयोगकर्ता परिभाषित प्रोटोकॉल रखने की अनुमति देता है। प्रोटोकॉल को राज्य मशीन के रूप में परिभाषित किया गया है।[5] चैनल पर भेजे गए डेटा को निश्चित पूर्व-निर्धारित स्कीमा के अनुरूप वैकल्पिक रूप से प्रतिबंधित किया जा सकता है। कंपाइलर और रनटाइम स्कीमा के अनुरूपता को प्रयुक्त करेंगे।[6] हुड के तहत, स्कीमा को क्रमबद्धता .NET कक्षा (कम्प्यूटिंग) में अनुवादित किया जाता है जिसमें केवल गुण और साइड इफेक्ट-मुक्त विधियां होती हैं।[7]
एक्सम परियोजना काम कर रहे माइक्रोसॉफ्ट विजुअल स्टूडियो एकीकरण के साथ प्रोटोटाइप की स्थिति तक पहुंच गई।[8] माइक्रोसॉफ्ट ने जनता के लिए एक्सम का सामुदायिक प्रौद्योगिकी पूर्वावलोकन उपलब्ध कराया था,[9] लेकिन इसे तब से हटा दिया गया है।
हालाँकि माइक्रोसॉफ्ट ने एक्सम को परियोजना में नहीं बदलने का निर्णय लिया,[2]एक्सम के पीछे के कुछ विचार टीपीएल डेटाफ्लो में .नेट 4.5 में उपयोग किए जाते हैं।
संदर्भ
- ↑ 1.0 1.1 "Maestro: A Managed Domain Specific Language For Concurrent Programming". Channel 9. Archived from the original on 7 April 2009. Retrieved 2009-04-16.
- ↑ 2.0 2.1 "The State of Axum". Niklas Gustafsson. Retrieved 2011-02-28.
- ↑ 3.0 3.1 3.2 Philips Joshua. "We haven't forgotten about other models – honest!". MSDN blogs. Archived from the original on 8 May 2009. Retrieved 2009-04-16.
- ↑ Niklas Gustafsson. "Isolation in Maestro". MSDN blogs. Archived from the original on 8 May 2009. Retrieved 2009-04-16.
- ↑ Niklas Gustafsson. "Channels". MSDN blogs. Archived from the original on 26 April 2009. Retrieved 2009-04-16.
- ↑ Joshua Philips. "Axum". Lang.NET Presentation. Archived from the original on 21 April 2009. Retrieved 2009-04-20.
{{cite web}}
: CS1 maint: unfit URL (link) - ↑ Niklas Gustafsson. "Objects in Axum". MSDN Blogs. Archived from the original on 26 April 2009. Retrieved 2009-04-20.
- ↑ "Axum: Another piece of Microsoft's parallel programming puzzle". CNet blogs. Archived from the original on 17 April 2009. Retrieved 2009-04-16.
- ↑ "Axum". MSDN DevLabs. Archived from the original on 11 May 2009. Retrieved 2009-05-09.