एक्सम (प्रोग्रामिंग भाषा): Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 29: Line 29:
|publisher=Niklas Gustafsson
|publisher=Niklas Gustafsson
|accessdate=2011-02-28
|accessdate=2011-02-28
}}</ref> यह सी (प्रोग्रामिंग भाषा)-जैसे सिंटैक्स का उपयोग करते हुए .NET [[ सामान्य भाषा रनटाइम |सामान्य भाषा रनटाइम]] पर आधारित [[ ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग |ऑब्जेक्ट ओरिएंटेड भाषा]] होती है, जो डोमेन-विशिष्ट भाषा होने के नाते, सॉफ़्टवेयर एप्लिकेशन के भागों के विकास के लिए अभिप्रेत होता है। जो कि समवर्ती के लिए उपयुक्त है। किंतु इसमें पर्याप्त सामान्य-उद्देश्य वाले निर्माण होते हैं जिन्हें समवर्ती घटकों के अनुक्रमिक भागों के लिए सामान्य-उद्देश्य प्रोग्रामिंग भाषा जैसे सी शार्प (प्रोग्रामिंग भाषा) पर स्विच करने की आवश्यकता नहीं होती है।<ref name="c9"/>
}}</ref> यह सी (प्रोग्रामिंग भाषा)-जैसे सिंटैक्स का उपयोग करते हुए .नेट [[ सामान्य भाषा रनटाइम |सामान्य भाषा रनटाइम]] पर आधारित [[ ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग |ऑब्जेक्ट ओरिएंटेड भाषा]] होती है, जो डोमेन-विशिष्ट भाषा होने के नाते, सॉफ़्टवेयर एप्लिकेशन के भागों के विकास के लिए अभिप्रेत होता है। जो कि समवर्ती के लिए उपयुक्त है। किंतु इसमें पर्याप्त सामान्य-उद्देश्य वाले निर्माण होते हैं जिन्हें समवर्ती घटकों के अनुक्रमिक भागों के लिए सामान्य-उद्देश्य प्रोग्रामिंग भाषा जैसे सी शार्प (प्रोग्रामिंग भाषा) पर स्विच करने की आवश्यकता नहीं होती है।<ref name="c9"/>


एक्सम में प्रोग्रामिंग का मुख्य मुहावरा एजेंट (या अभिनेता) होता है, जो भिन्न इकाई होती है जो अन्य एजेंटों के साथ समानांतर में निष्पादित होता है।<ref name="isolation">{{cite web
एक्सम में प्रोग्रामिंग का मुख्य मुहावरा एजेंट (या अभिनेता) होता है, जो भिन्न इकाई होती है जो अन्य एजेंटों के साथ समानांतर में निष्पादित होता है।<ref name="isolation">{{cite web
Line 51: Line 51:
|author=Niklas Gustafsson
|author=Niklas Gustafsson
|accessdate=2009-04-16
|accessdate=2009-04-16
| archiveurl= https://web.archive.org/web/20090426212830/http://blogs.msdn.com/maestroteam/archive/2009/03/02/channels.aspx| archivedate= 26 April 2009 | url-status= live}}</ref> चैनल पर भेजे गए डेटा को निश्चित पूर्व-निर्धारित स्कीम के अनुरूप वैकल्पिक रूप से प्रतिबंधित किया जा सकता है। कंपाइलर और रनटाइम स्कीम की अनुरूपता को प्रयुक्त कर।<ref>{{cite web
| archiveurl= https://web.archive.org/web/20090426212830/http://blogs.msdn.com/maestroteam/archive/2009/03/02/channels.aspx| archivedate= 26 April 2009 | url-status= live}}</ref> चैनल पर भेजे गए डेटा को निश्चित पूर्व-निर्धारित स्कीम के अनुरूप वैकल्पिक रूप से प्रतिबंधित किया जा सकता है। कंपाइलर और रनटाइम स्कीम की अनुरूपता को प्रयुक्त करते है।<ref>{{cite web
|url=http://www.langnetsymposium.com/2009/talks/32-JoshuaPhillips-Axum.html
|url=http://www.langnetsymposium.com/2009/talks/32-JoshuaPhillips-Axum.html
|title=Axum
|title=Axum
Line 60: Line 60:
|archivedate=21 April 2009
|archivedate=21 April 2009
|url-status=usurped
|url-status=usurped
}}</ref> हुड के तहत''Channels'' can be regarded as a directional pathway to communicate between agent instances. The member functions of a ''Channel'' object, after it has been bound to an agent instance, can be used to communicate with it. A ''Channel'' contains input and output ''ports'', which are queues which are used to send data to an agent or receive data from one. To co-ordinate the communication between agents, Axum allows each channel to have a user-defined ''protocol'' for communication. The protocol is defined as a state machine. The data sent over a channel can be optionally restricted to conform to a certain pre-defined ''schema''. The compiler and runtime will enforce the conformance with the schema. Under the hood, a ''schema'' is translated into a serializable .NET class that contains only properties and side effect-free methods.
}}</ref> हुड के अनुसार, स्कीम को [[क्रमबद्धता]] .नेट [[ कक्षा (कम्प्यूटिंग) |कक्षा (कम्प्यूटिंग)]] में अनुवादित किया जाता है जिसमें केवल गुण और दुष्प्रभाव-मुक्त विधियां होती हैं।<ref name="objects">{{cite web
 
, स्कीमा को [[क्रमबद्धता]] .NET [[ कक्षा (कम्प्यूटिंग) |कक्षा (कम्प्यूटिंग)]] में अनुवादित किया जाता है जिसमें केवल गुण और साइड इफेक्ट-मुक्त विधियां होती हैं।<ref name="objects">{{cite web
|url=http://blogs.msdn.com/maestroteam/archive/2009/04/20/objects-in-axum.aspx
|url=http://blogs.msdn.com/maestroteam/archive/2009/04/20/objects-in-axum.aspx
|title=Objects in Axum
|title=Objects in Axum
Line 70: Line 68:
| archiveurl= https://web.archive.org/web/20090426214328/http://blogs.msdn.com/maestroteam/archive/2009/04/20/objects-in-axum.aspx| archivedate= 26 April 2009 | url-status= live}}</ref>
| archiveurl= https://web.archive.org/web/20090426214328/http://blogs.msdn.com/maestroteam/archive/2009/04/20/objects-in-axum.aspx| archivedate= 26 April 2009 | url-status= live}}</ref>


एक्सम परियोजना काम कर रहे [[माइक्रोसॉफ्ट विजुअल स्टूडियो]] एकीकरण के साथ प्रोटोटाइप की स्थिति तक पहुंच गई।<ref>{{cite web
एक्सम परियोजना कार्य कर रहे [[माइक्रोसॉफ्ट विजुअल स्टूडियो]] एकीकरण के साथ प्रोटोटाइप की स्थिति तक पहुंच गई है।<ref>{{cite web
|url=http://blogs.zdnet.com/microsoft/?p=2522
|url=http://blogs.zdnet.com/microsoft/?p=2522
|title=Axum: Another piece of Microsoft's parallel programming puzzle
|title=Axum: Another piece of Microsoft's parallel programming puzzle
|publisher=[[CNet]] blogs
|publisher=[[CNet]] blogs
|accessdate=2009-04-16
|accessdate=2009-04-16
| archiveurl= https://web.archive.org/web/20090417203031/http://blogs.zdnet.com/microsoft/?p=2522| archivedate= 17 April 2009 | url-status= live}}</ref> माइक्रोसॉफ्ट ने जनता के लिए एक्सम का [[सामुदायिक प्रौद्योगिकी पूर्वावलोकन]] उपलब्ध कराया था,<ref name="dnld">{{cite web
| archiveurl= https://web.archive.org/web/20090417203031/http://blogs.zdnet.com/microsoft/?p=2522| archivedate= 17 April 2009 | url-status= live}}</ref> इस प्रकार माइक्रोसॉफ्ट ने जनता के लिए एक्सम का [[सामुदायिक प्रौद्योगिकी पूर्वावलोकन]] उपलब्ध कराया था,<ref name="dnld">{{cite web
|url=http://msdn.microsoft.com/en-us/devlabs/dd795202.aspx
|url=http://msdn.microsoft.com/en-us/devlabs/dd795202.aspx
|title=Axum
|title=Axum
|publisher = MSDN DevLabs
|publisher = MSDN DevLabs
|accessdate=2009-05-09
|accessdate=2009-05-09
| archiveurl= https://web.archive.org/web/20090511155406/http://msdn.microsoft.com/en-us/devlabs/dd795202.aspx| archivedate= 11 May 2009 | url-status= dead}}</ref> लेकिन इसे तब से हटा दिया गया है।
| archiveurl= https://web.archive.org/web/20090511155406/http://msdn.microsoft.com/en-us/devlabs/dd795202.aspx| archivedate= 11 May 2009 | url-status= dead}}</ref> लेकिन इसे तब से हटा दिया गया है। चूँकि माइक्रोसॉफ्ट ने एक्सम को परियोजना में परिवर्तन नही करने का निर्णय लिया है,<ref name="shutdown" /> अतः एक्सम के पीछे के कुछ विचार [[टीपीएल डेटाफ्लो]] में .नेट 4.5 में उपयोग किए जाते हैं।
 
हालाँकि माइक्रोसॉफ्ट ने एक्सम को परियोजना में नहीं बदलने का निर्णय लिया,<ref name="shutdown" />एक्सम के पीछे के कुछ विचार [[टीपीएल डेटाफ्लो]] में .नेट 4.5 में उपयोग किए जाते हैं।


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

Revision as of 16:23, 3 June 2023

Axum
File:Axum Banner.png
DeveloperMicrosoft
पहली प्रस्तुतिMay 8, 2009
Stable release
Community Technology Preview / May 8, 2009 (2009-05-08)
प्लेटफॉर्म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] यह सी (प्रोग्रामिंग भाषा)-जैसे सिंटैक्स का उपयोग करते हुए .नेट सामान्य भाषा रनटाइम पर आधारित ऑब्जेक्ट ओरिएंटेड भाषा होती है, जो डोमेन-विशिष्ट भाषा होने के नाते, सॉफ़्टवेयर एप्लिकेशन के भागों के विकास के लिए अभिप्रेत होता है। जो कि समवर्ती के लिए उपयुक्त है। किंतु इसमें पर्याप्त सामान्य-उद्देश्य वाले निर्माण होते हैं जिन्हें समवर्ती घटकों के अनुक्रमिक भागों के लिए सामान्य-उद्देश्य प्रोग्रामिंग भाषा जैसे सी शार्प (प्रोग्रामिंग भाषा) पर स्विच करने की आवश्यकता नहीं होती है।[1]

एक्सम में प्रोग्रामिंग का मुख्य मुहावरा एजेंट (या अभिनेता) होता है, जो भिन्न इकाई होती है जो अन्य एजेंटों के साथ समानांतर में निष्पादित होता है।[3] चूँकि एक्सम की भाषा में, इसे भिन्न आइसोलेशन डोमेन में क्रियान्वित करने वाले एजेंटों के रूप में संदर्भित किया जाता है।[3] अतः डोमेन के अंदर तत्काल वस्तुओं को दूसरे से सीधे एक्सेस नहीं किया जा सकता है।[4] इस प्रकार एजेंट शिथिल रूप से युग्मित होता हैं (अर्थात्, एजेंटों के मध्य निर्भरता की संख्या न्यूनतम होती है) और मेमोरी जैसे संसाधनों को साझा नहीं करते हैं (सी शार्प (प्रोग्रामिंग लैंग्वेज) और समान भाषाओं के साझा मेमोरी (इंटरप्रोसेस कम्युनिकेशन) मॉडल के विपरीत होती है। इसके अतिरिक्त संदेश पासिंग मॉडल का उपयोग किया जाता है।[3] एजेंटों को समन्वयित करने या किसी एजेंट को दूसरे के संसाधनों का अनुरोध करने के लिए, एजेंट को स्पष्ट संदेश भेजा जा सकता है। इस प्रकार एक्सम इसे सुविधाजनक बनाने के लिए चैनल प्रदान करता है।

सामान्यतः एजेंट उदाहरणों के मध्य संवाद करने के लिए चैनल को दिशात्मक मार्ग के रूप में माना जा सकता है। अतः चैनल ऑब्जेक्ट के सदस्य कार्य, एजेंट उदाहरण के लिए बाध्य होने के पश्चात्, इसके साथ संवाद करने के लिए उपयोग किया जा सकता है। इस प्रकार चैनल में इनपुट और आउटपुट भाग होते हैं, जो कतार (डेटा संरचना) होते हैं, जिनका उपयोग किसी एजेंट को डेटा भेजने या किसी से डेटा प्राप्त करने के लिए किया जाता है। अधिकांशतः एजेंटों के मध्य संचार को समन्वयित करने के लिए, एक्सम प्रत्येक चैनल को संचार के लिए उपयोगकर्ता परिभाषित प्रोटोकॉल रखने की अनुमति देता है। इस प्रकार प्रोटोकॉल को राज्य मशीन के रूप में परिभाषित किया गया है।[5] चैनल पर भेजे गए डेटा को निश्चित पूर्व-निर्धारित स्कीम के अनुरूप वैकल्पिक रूप से प्रतिबंधित किया जा सकता है। कंपाइलर और रनटाइम स्कीम की अनुरूपता को प्रयुक्त करते है।[6] हुड के अनुसार, स्कीम को क्रमबद्धता .नेट कक्षा (कम्प्यूटिंग) में अनुवादित किया जाता है जिसमें केवल गुण और दुष्प्रभाव-मुक्त विधियां होती हैं।[7]

एक्सम परियोजना कार्य कर रहे माइक्रोसॉफ्ट विजुअल स्टूडियो एकीकरण के साथ प्रोटोटाइप की स्थिति तक पहुंच गई है।[8] इस प्रकार माइक्रोसॉफ्ट ने जनता के लिए एक्सम का सामुदायिक प्रौद्योगिकी पूर्वावलोकन उपलब्ध कराया था,[9] लेकिन इसे तब से हटा दिया गया है। चूँकि माइक्रोसॉफ्ट ने एक्सम को परियोजना में परिवर्तन नही करने का निर्णय लिया है,[2] अतः एक्सम के पीछे के कुछ विचार टीपीएल डेटाफ्लो में .नेट 4.5 में उपयोग किए जाते हैं।

संदर्भ

  1. 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. 2.0 2.1 "The State of Axum". Niklas Gustafsson. Retrieved 2011-02-28.
  3. 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.
  4. Niklas Gustafsson. "Isolation in Maestro". MSDN blogs. Archived from the original on 8 May 2009. Retrieved 2009-04-16.
  5. Niklas Gustafsson. "Channels". MSDN blogs. Archived from the original on 26 April 2009. Retrieved 2009-04-16.
  6. 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)
  7. Niklas Gustafsson. "Objects in Axum". MSDN Blogs. Archived from the original on 26 April 2009. Retrieved 2009-04-20.
  8. "Axum: Another piece of Microsoft's parallel programming puzzle". CNet blogs. Archived from the original on 17 April 2009. Retrieved 2009-04-16.
  9. "Axum". MSDN DevLabs. Archived from the original on 11 May 2009. Retrieved 2009-05-09.


बाहरी संबंध