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

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

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

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

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

बाहरी संबंध

 * Programmers' Guide