समवर्ती एमएल

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

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

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

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

हैलो वर्ल्ड
यहां एक प्रोग्राम है "Hello, world!" जो कंसोल के लिए प्रिंट करता है। यह स्ट्रिंग (कंप्यूटर विज्ञान) के लिए चैनल के साथ थ्रेड (कंप्यूटर विज्ञान) बनाता है, और दूसरा थ्रेड जो चैनल पर प्राप्त स्ट्रिंग को प्रिंट करता है। यह एसएमएल/एनजे और सीएमएल का उपयोग करता है। (ध्यान दें कि गैर linux-x86 प्लेटफॉर्म पर हीप का नाम अलग होगा; आपको cml_test.x86-linux के साथ लाइन को कुछ अलग करने की आवश्यकता हो सकती है।)

बाहरी संबंध

 * The language homepage