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

एक्सम (पहले कोडनेम मेस्ट्रो) एक डोमेन-विशिष्ट भाषा है | डोमेन-विशिष्ट समवर्ती प्रोग्रामिंग भाषा, अभिनेता मॉडल पर आधारित है, जो माइक्रोसॉफ्ट द्वारा सक्रिय विकास के तहत थी 2009 और 2011 के बीच। यह .NET Framework|.NET सामान्य भाषा रनटाइम  पर आधारित एक  ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग |ऑब्जेक्ट-ओरिएंटेड लैंग्वेज है, जिसमें C (प्रोग्रामिंग लैंग्वेज)-जैसे सिंटैक्स का उपयोग किया जाता है, जो एक डोमेन-विशिष्ट भाषा होने के नाते, भागों के विकास के लिए अभिप्रेत है। एक सॉफ़्टवेयर एप्लिकेशन जो समवर्ती के लिए उपयुक्त है। लेकिन इसमें पर्याप्त सामान्य-उद्देश्य वाले निर्माण होते हैं जिन्हें समवर्ती घटकों के अनुक्रमिक भागों के लिए एक सामान्य-उद्देश्य प्रोग्रामिंग भाषा (जैसे सी शार्प (प्रोग्रामिंग भाषा) | सी #) पर स्विच करने की आवश्यकता नहीं होती है।

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

एजेंट उदाहरणों के बीच संवाद करने के लिए चैनल को दिशात्मक मार्ग के रूप में माना जा सकता है। एक चैनल ऑब्जेक्ट के सदस्य कार्य, एक एजेंट उदाहरण के लिए बाध्य होने के बाद, इसके साथ संवाद करने के लिए उपयोग किया जा सकता है। एक चैनल में इनपुट और आउटपुट पोर्ट होते हैं, जो कतार (डेटा संरचना) होते हैं जिनका उपयोग किसी एजेंट को डेटा भेजने या किसी से डेटा प्राप्त करने के लिए किया जाता है। एजेंटों के बीच संचार को समन्वयित करने के लिए, एक्सम प्रत्येक चैनल को संचार के लिए उपयोगकर्ता परिभाषित प्रोटोकॉल रखने की अनुमति देता है। प्रोटोकॉल को राज्य मशीन के रूप में परिभाषित किया गया है। एक चैनल पर भेजे गए डेटा को एक निश्चित पूर्व-निर्धारित स्कीमा के अनुरूप वैकल्पिक रूप से प्रतिबंधित किया जा सकता है। कंपाइलर और रनटाइम स्कीमा के अनुरूपता को लागू करेंगे। हुड के तहत, एक स्कीमा को क्रमबद्धता .NET कक्षा (कम्प्यूटिंग)  में अनुवादित किया जाता है जिसमें केवल गुण और साइड इफेक्ट-मुक्त विधियां होती हैं। एक्सम परियोजना काम कर रहे माइक्रोसॉफ्ट विजुअल स्टूडियो एकीकरण के साथ एक प्रोटोटाइप की स्थिति तक पहुंच गई। Microsoft ने जनता के लिए Axum का सामुदायिक प्रौद्योगिकी पूर्वावलोकन उपलब्ध कराया था, लेकिन इसे तब से हटा दिया गया है। हालाँकि Microsoft ने Axum को एक परियोजना में नहीं बदलने का निर्णय लिया, एक्सम के पीछे के कुछ विचार टीपीएल डेटाफ्लो में .नेट 4.5 में उपयोग किए जाते हैं।

बाहरी संबंध

 * Programmers' Guide