कॉमन लैंग्वेज रनटाइम | Best Common Language Runtime

कॉमन लैंग्वेज रनटाइम द्वारा कौन-कौन से काम किए जाते हैं? | Common Language Runtime In Hindi

कॉमन लैंग्वेज रनटाइम – कॉमन लैंग्वेज रनटाइम मेमोरी थ्रेड एक्जिक्युशन, कोड एक्जिकयुशन, कोड सेफ्टी वेरिफिकेशन, कम्पाइलेशन तथा अन्य सिस्टम सेवाओं को व्यवस्थित करता है। ये फीचर व्यवस्थित कोड के आधार हैं जो कॉमन लैंग्वेज रनटाइम पर रन होते हैं। कॉमन लैंग्वेज रनटाइम वह इंजिन है जो सोर्स कोड को एक इण्टरमीडिएट लैंग्वेज में कम्पाइल करता है।

इस इण्टरमीडिएट लैंग्वेज को माइक्रोसॉफ्ट इण्टरमीडिऐट लैंग्वेज (MicroSoft Intermediate Language) कहा जाता है जिसे हम कॉमन इण्टरमीडिऐट लैंग्वेज (Common Intermediate Language) या केवल इन्टरमीडिएट लैंग्वेज (Intermediate Language) से भी जानते हैं।

जब आप अपने प्रोग्राम को रन करते हैं तब माइक्रोसॉफ्ट इण्टरमीडिऐट लैंग्वेज को जस्ट इन टाइम कम्पाइलर के माध्यम से स्थानीय (नेटिव) कोड या मशीनी कोड में बदलते हैं। प्रोग्राम कोड के कम्पाइल किये जाने पर परिणामस्वरूप एक पोर्टेबल एक्जीक्यूटेबल (Portable Executable) फाइल बनता है जिसमें माइक्रोसॉफ्ट इण्टरमीडिऐट लैंग्वेज तथा कुछ अतिरिक्त सूचना होते हैं। इस अतिरिक्त सूचना को मेटाडेटा (metadata) कहते हैं।

मेटाडेटा माइक्रोसॉफ्ट इण्टरमीडिऐट लैंग्वेज (MicroSoft Intermediate Language) का वर्णन करता है तथा इसमें नाम, मेथड, हस्ताक्षर (signature) और कई निर्भरता सूचना (dependency information) जैसे ब्यौरे मौजूद होते हैं। कॉमन लैंग्वेज रनटाइम का एक और अत्यन्त महत्त्वपूर्ण कार्य है। प्रोग्राम रन होने के दौरान यह मेमोरी को व्यवस्थित करने का कार्य स्वयं ही गार्बेज कलेक्शन नामक प्रोसेस के माध्यम से करता है।

परिणामस्वरूप वी.बी. के पहले के संस्करणों के विपरीत प्रोग्रामर को मेमोरी प्रबन्धन के विभिन्न चरणों के बारे में चिन्तित होने की आवश्यकता नहीं होती है। चूँकि कॉमन लैंग्वेज रनटाइम (Common Language Runtime) आपके कोड को एक इण्टरमीडिएट लैंग्वेज में कम्पाइल करता है अर्थात अपने इच्छा की किसी भी भाषा में आप कोड लिख सकते हैं। डॉट नेट फ्रेमवर्क के इस फीचर के कारण इस भाषा स्वतंत्र प्लेटफॉर्म कहा जाता है और ये डॉट नेट फ्रेमवर्क के लाभों में एक है।

कॉमन लैंग्वेज रनटाइम आपके प्रोग्राम विकास की गति में कई तरह से तेजी लाता है। ये किस प्रकार विकास की प्रक्रिया
को तेज करता है, इसको समझिए –

1- प्रोग्रामर जब प्रोग्राम को लिखते हैं तब उन्हें आमतौर पर स्वयं ही प्रोग्राम को मेमोरी अलोकेट तथा डिलोकेट करना पड़ता है। डॉट नेट में कॉमन लैंग्वेज रनटाइम इस कार्य को स्वयं ही करता है अर्थात् प्रोग्रामरों द्वारा मेमोरी को व्यवस्थित करने में लगने वाला समय बचता है।

2- जब आप किसी प्लेटफॉर्म पर एप्लीकेशन विकसित करते हैं तो आपको उस भाषा में आवश्यक रूप से निपुण होना चाहिए। जब आप डॉट नेट प्लेटफॉर्म पर कोई एप्लीकेशन विकसित करना चाहते हैं तो आपके पास एक से अधिक भाषा में कोड लिखने की स्वतंत्रता प्राप्त होती है ।

अर्थात् यह आवश्यक नहीं है कि आप वी.बी. के पिछले संस्करणों की तरह केवल विजुअल बेसिक में ही कोड लिखें। आप यदि C# में कोड लिख सकते हैं तो आप इसी में कोड लिख सकते हैं। परिणामस्वरूप आपको विजुअल बेसिक सीखने में जो समय लगता उसकी भी बचत कॉमन लैंग्वेज रनटाइम के कारण ही होती है। 

कॉमन लैंग्वेज रनटाइम क्या होता है एवं उपयोग  | Common Language Runtime In .Net Framework

कॉमन लैंग्वेज रनटाइम द्वारा कौन-कौन से काम किए जाते हैं? | Common Language Runtime In Hindi
कॉमन लैंग्वेज रनटाइम द्वारा कौन-कौन से काम किए जाते हैं? | Common Language Runtime In Hindi

कॉमन लैंग्वेज रनटाइम की प्रक्रिया (Process Of Common Language Runtime)

डॉट नेट फ्रेमवर्क पर रन हेने वाले कोड (मैनेज्ड कोड) की कम्पाइलिंग तथा क्रियान्वयन प्रक्रिया

  • सबसे पहले आप अपने पसन्द की भाषा में प्रोग्राम कोड लिखते हैं।
  • फिर वह कोड उस भाषा के कम्पाइलर द्वारा कम्पाइल होता है।
  • कम्पाइल होने के बाद एक फाइल बनती है जसे हम पोर्टेबल एक्जीक्यूटेबल फाइल कहते हैं जिसमें आप द्वारा लिखा गया इन्टरमिडियेट भाषा में परिवर्तित होता है तथा जिसमें कुछ अतिरिक्त सूचना भी होते हैं। इस सूचना को मेटाडेय कहा जाता है। मेटाडेटा में प्रोग्राम से सम्बन्धित पूरा ब्यौरा मौजूद होता है।
  • उसके बाद इण्टरमीडिएट भाषा तथा मेटाडेटा एक लायब्रेरी से लिंक होते हैं।
  • इसके पश्चात् कम्पाइलर exe अथवा dll फाइल बनाता है।
  • जब आप इस exe या dll फाइल को एक्ज़ीक्यूट करते हैं तब बेस क्लास लायब्रेरी से कोड तथा सभी प्रासंगिक सूचना क्लास लोडर को भेजा जाता है। क्लास लोडर का कार्य कोड को मेमोरी में लोड करना होता है।
  • जस्ट इन टाइम कम्पाइलर कोड को इन्टरमिडिऐट भाषा से फिर मैनेज्ड नेटिव कोड में अनुवाद करता है। कॉमन लैंग्वेज रनटाइम प्रत्येक सी पी यू (CPU) के लिए एक जस्ट इन टाइम (Just In Time) कम्पाइलर उपलब्ध कराता है।
  • कोड कम्पाइलेशन के दौरान जस्ट इन टाइम (Just In Time) सम्पूर्ण इण्टरमीडिऐट लैंग्वेज को कम्पाइल करने के बदले केवल उन्हीं इण्टरमीडिऐट लैंग्वेज कोड को कम्पाइल करता है जिसकी आवश्यकता एक्ज़ीक्युशन के दौरान होता है। इस प्रक्रिया के दौरान यदि कोई अनकम्पाइल्ड मेथड जागृत होता है तो उस स्थिति में जस्ट इन टाइम कम्पाइलर उस मेथड के लिये उस इण्टरमीडिऐट लैंग्वेज को स्थानीय कोड में कम्पाइल करता है।
  • जस्ट इन टाइम कम्पाइलेशन के दौरान कोड की टाइप सेफ्टी जाँच होती है। टाइप सेफ्टी यह सुनिश्चित करता है कि ऑब्जेक्ट हमेशा एक कॉम्पैटिबल तरीके से ही एक्सेस किया जायेगा। अर्थात् आप मेथड को 4 बाइट के बजाय 8 बाइट में मान पास करते हैं तो जस्ट इन टाइम पकड़ लेता है।
  • IL को स्थानीय कोड में बदलने के बाद, परिवर्तित कोड डॉट नेट रनटाइम मैनेजर को भेज दिया जाता है। डॉट नेट रनटाइम मैनेजर कोड को एक्जीक्यूटेबल बनाता है। कोड के एक्जीक्यूशन के दौरान यह भी सुनिश्चित किया जाता है कि कोड को रिर्सोस ऐक्सेस करने के सही अधिकार प्राप्त हों।

एम. एस. आई० एल० (MSIL)

एम० एस० आई० एल० का पूर्ण रूप माइक्रोसॉफ्ट इंटरमीडिएट लैंग्वेज (Microsoft Intermediate Language) है। इसे आइ एल (IL) या इन्टरमीडिएट लैंग्वेज (Intermediate Language) के नाम से भी जाना जाता है। इसे कभी-कभी कॉमन इंटरमीडिएट लैंग्वेज के नाम से भी संबोधित किया जाता है। अतः आप इन तीनों नामों के अलग-अलग स्थान पर उपयोग किये जाने पर भ्रमित न हों।

जब आप वी० बी० डॉट नेट या ऐसे किसी भाषा (सी शार्प इत्यादि) में प्रोग्राम (सोर्स कोड) तैयार करते हैं जो सी० एल० आर० को टारगेट करता है तथा उसे कम्पाइल किया जाता है तब सोर्स कोड को मशीन कोड में कम्पाईल किये जाने के बजाय कम्पाइलर इस कोड को माइक्रोसॉफ्ट इंटरमीडिएट लैंग्वेज में अनुवाद करता है। ऐसा करने में भाषा इंटरओपरेबिलिटी (interoperability) सुनिश्चित होता है। भाषा इंटरओपरेबिलिटी का मतलब एक से अधिक भाषा के मध्य कार्य करने की स्वतंत्रता से है।

माइक्रोसॉफ्ट इंटरमीडिएट लैंग्वेज को सोर्स कोड तथा स्थानीय मशीनी कोड के मध्य का कोड भी कहा जा सकता है। ये जावा के बाइटकोड के समान है। शब्द मिमांसा : इंटरऑपरेबिलिटी (Interoperability) पर्यायवाची  इंटरऑपरेबिलिटी का सटिक हिन्दी पर्यायवाची बनाना अत्यंत कठिन कार्य है। बल्कि इसका सटिक हिन्दी असम्भव है । दो अलग अलग सिस्टम या कम्पोनेण्ट के द्वारा सूचना के आदान प्रदान करने तथा उनका उपयोग करने की क्षमता को इंटरऑपरेबिलिटी कहा जाता है ।

असेम्बलीज (Assemblies)

जब आप वी०बी० डॉट नेट में डॉट नेट फ्रेमवर्क सपोर्टेड किसी भी भाषा में कोई प्रोग्राम लिखते हैं तो वह सोर्स कोड कम्पाइलर के द्वारा इंटरमीडिएट लैंग्वेज में परिवर्तित होता है। कम्पाईलर कोड को इंटरमीडियेट लैंग्वेज में बदलने के क्रम में ही मेटाडाटा बनाता है।

यह मेटाडाटा प्रोग्राम में संबंधित कुछ महत्वपूर्ण सूचना जैसे क्लास तथा इंटरफेस, प्रोग्राम में उपयोग हुए कम्पोनन्ट का संस्करण इत्यादि रखता है। ये दोनों की इंटरमीडिएट लैंग्वेज तथा मेटाडाटा असेम्बली मे लिंक होते है। डॉट नेट फ्रेमवर्क में विकसित सभी एप्लीकेशन असेम्बली से मिलकर ही बने होते है। सी० एल० आर० एप्लीकेशन को एक्ज़िक्यूट करते समय उस एप्लीकेशन से संबंधित सूचना असेम्बली से ही प्राप्त करता है।

क्लास लायब्रेरी (Class Library)

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

ऐसा करने पर केवल डॉट नेट फ्रेमवर्क क्लासों को उपयोग करना ही आसान नहीं होता बल्कि डॉट नेट फ्रेमवर्क के नये फीचरों को समझने में लगने वाला समय भी कम लगता है। इसके अतिरिक्त ततीय पक्ष (third party) कम्पोनेण्ट डॉट नेट फ्रेमवर्क के क्लासों के साथ बगैर किसी त्रुटि के एकीकृत हो सकता है।

उदाहरण के लिऐ डॉट नेट फ्रेमवर्क संकलन क्लास (collection classes) इंटरफेस का एक सेट लागू करता है जो आप अपने संकलन क्लासों को विकसित करने में कर सकते हैं। आपका संकलन क्लास बगैर त्रुटि के डॉट नेट फ्रेमवर्क के क्लासों के साथ मिलकर कार्य करेगा।

नेमस्पेस क्या है? | What is Namespace?

नेमस्पेस का उपयोग एक जैसे क्लास तथा इंटरफेस के लॉजिकल समूहों के निर्माण में होता है जिसे किसी भी ऐसे भाषा द्वारा उपयोग में लाया जा सकता है जो डॉट नेट फ्रेमवर्क को टारगेट करता है । नेमस्पेस की सहायता से आप क्लासों को व्यवस्थित कर सकते हैं ताकि वे अन्य एप्लीकेशनों में आसानी के साथ उपयोग किये जा सकें। नेमस्पेसेज का अन्य उपयोग ये है कि इसके कारण एक ही नाम वाले क्लास के मध्य नाम का उलझन नहीं होता है।

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

Question- : कॉमन लैंग्वेज रनटाइम की चार भूमिकाओं को बताएँ।
Answer – कॉमन लैंग्वेज रनटाइम की चार भूमिकाएँ ये हैं.

  1. गारबेज संकलन (Garbage Collection)
  2. कोड परिक्षण (Code Verification)
  3. कोड एक्सेस सुरक्षा (Code Access Security)
  4. इन्टरमिडिएट भाषा से स्थानीय भाषा में अनुवाद (Intermediate Language to Native Language Translation)

Rate this post
Suraj Kushwaha
Suraj Kushwahahttp://techshindi.com
हैलो दोस्तों, मेरा नाम सूरज कुशवाहा है मै यह ब्लॉग मुख्य रूप से हिंदी में पाठकों को विभिन्न प्रकार के कंप्यूटर टेक्नोलॉजी पर आधारित दिलचस्प पाठ्य सामग्री प्रदान करने के लिए बनाया है।

LEAVE A REPLY

Please enter your comment!
Please enter your name here