What is CLR

इस पोस्ट में हम CLR (Common language run time) के बारे में जानेगे |

CLR (Common language Run time)

Net फ्रेमवर्क का दूसरा भाग कॉमन लैंग्‍वेज रनटाइम (CLR) हैं। CLR डॉट नेट फ्रेमवर्क की प्रथम लेयर मानी जाती है CLR डॉट नेट में लिखे गए प्रोग्राम के Execution Environment को define करता है अर्थात CLR यूजर को ऐसा वातावरण प्रदान करता है जिसके अंतर्गत यूजर कम से कम समय में किसी भी एप्लीकेशन को आसानी से बनाकर (Develop)क्रियान्वित (Execute)करा सकता है |

जब आप .Net फ्रेमवर्क के लिए ऐप्लिकेशन इन भाषाओं जैसे कि VB.Net या C# में लिखते हैं, तो आपका सोर्स-कोड कभी भी प्रत्‍यक्ष रूप से मशीनी कोड में कम्‍पाइल नहीं होता। इसके बजाय VB में C# कंपाइलर आपके कोड को एक विशेष भाषा में बदलता हैं, जिसे MSIL (माइक्रोसॉफ्ट इंटरमीडिएट लैंग्‍वेज) कहते हैं।

MSIL काफी हद तक एक ऑब्‍जेक्‍ट-ओरिएन्टिड असैम्‍बली भाषा एक तरह की लगती है। परन्‍तु एक असैम्‍बली भाषा की तरह यह हर CPU पर निर्भर नहीं होती। यह लो-लेवल तथा प्‍लेटफॉर्म से स्‍वंतत्र भाषा है।

जब आपकी ऐप्लिकेशन एक्जिक्‍यूट होती है, MSIL कोड “just-in-time” मशीनी कोड में कंपाइल होता है। यह कार्य JITTER (the just-in-time compiler) करता है। साधारणत: आपकी पूरी ऐप्लिकेशन मशीनी कोड में कंपाइल नहीं होती। इसके बजाय सिर्फ कॉल किये गए मैथड ही कंपाइल किए जाते हैं।

वास्‍तव में .Net फ्रेमवर्क सिर्फ एक भाषा MSIL समझता है। परन्‍तु आप VB.Net तथा C# भाषाओं का प्रयोग एप्लिकेशन लिखने में कर सकते हैं, क्‍योंकि .Net फ्रेमवर्क में शामिल कम्‍पाइलर्स इन भाषाओं में लिखे गये कोड को MSIL में कंपाइल करने में आपकी सहायता करते हैं।

आप .Net फ्रेमवर्क के लिए निम्‍नलिखित भाषाओं का प्रयोग कर सकते हैं-


  • Ada
  • COBOL
  • Fortran
  • JavaScript
  • Perl
  • Pascal
  • PHP
  • Python
  • RPG
  • Smalltalk

अधिकतर डैवलपर ASP.Net एप्लिकेशन लिखने के लिए VB.Net या C# का प्रयोग करते है। सूची में दी गयी अन्‍य .Net भाषाएँ ऐकेडमिक प्रयोग हैं। पहले यदि आप डैवलपर बनना चाहते थे, तो आपको किसी एक लैंग्वेज में दक्ष (Efficient) होने की आवश्‍यकता थी, जैसे एक C++ प्रोग्रामर, एक COBOL प्रोग्रामर या एक विजुअल बेसिक प्रोग्रामर। लेकिन .Net फ्रेमवर्क के आ जाने से किसी एक भाषा को जानना आवश्‍यक नहीं है। यह आपकी इच्‍छा है कि .Net एप्लिकेशन लिखने के लिए आप कौन-सी लैंग्वेज चुने । यदि आपको केस सैन्सिटिविटी व अर्द्ध-विराम (Semicolon) पंसद न हों, तो अपना कोड विजुअल बेसिक .Net में लिखें।

.Net फ्रेमवर्क के वास्‍तविक कार्य फ्रेमवर्क क्‍लास लाइब्रेरी में होते हैं। यदि आप माइक्रोसॉफ्ट की तकनीकों का प्रयोग करके अच्‍छे प्रोग्रामर बनना चाहते हैं तो आपको इस फ्रेमवर्क में सम्मिलित 13000 क्‍लासेज की प्रॉपर्टीज, मैथड्स तथा इवेंट्स का प्रयोग करना सीखना होगा। .Net फ्रेमवर्क के अनुसार इससे कोई फर्क नहीं पड़ता कि आप इन क्‍लासेज का प्रयोग VB.Net से कर रहे हैं या C# ऐप्लिकेशन से।

CLR प्रोग्राम के क्रियान्वयन के साथ-साथ निम्नलिखित सर्विसेज प्रदान करता है |

  • एप्लीकेशन के लिए आवश्यक कोड Compile करना |
  • प्रोग्राम क्रियान्वयन (Execution) के दौरान मेमोरी को एलोकेट करना |
  • प्रोग्राम में सम्मलित समस्त थ्रेड को मैनेज करना |
  • गार्वेज कलेक्शन को हैंडल करना |
  • एक्सेप्शन हैंडलिंग को सपोर्ट करना |

CLR के द्वारा CTS (कॉमन टाइप सिस्टम)प्रदान किया गया है,जो प्रोग्राम को रन कराने के लिए सुरक्षित वातावरण प्रदान करता है|CLR को CLI(कॉमन लैंग्वेज इन्फ्रास्ट्रक्चर) के नाम से भी जाना जाता है |

जब डॉट नेट प्रोग्राम Compile होता है,तब प्रोग्राम की आउटपुट एक्ज़िक्यूशन फाइल नहीं होती है ,बल्कि एक ऐसी फाइल होती है जो विशेष प्रकार के कोड को सम्म्लित किये रहती है जिसे माइक्रोसॉफ्ट इंटरमीडिएट लैंग्वेज MSIL कहते है | वास्तविकता में MSIL ऐसे निर्देशों का समूह होता है जो प्लेटफार्म इंडिपेंडेंट होता है | जब प्रोग्राम एक्ज़िक्यूट होता है तब CLR ही इस इंटरमीडिएट कोड को एक्ज़िक्यूटेबल कोड में बदलता है | यह MSIL Code JIT के माध्यम से ही एक्ज़िक्यूटेबल कोड में बदला जाता है | JIT Compiler MSIL को आवश्यकतानुसार नेटिव कोड में बदलता है |

CLR को मुख्यतः पांच भागो में विभाजित किया गया है,जो निम्नलिखित है –


  • कॉमन टाइप सिस्टम (CTS)
  • कॉमन लैंग्वेज स्पेसिफिकेशन (CLS)
  • कॉमन इंटरमीडिएट लैंग्वेज (CIL)
  • जस्ट इन टाइम कम्पाइलर (JIT)
  • वर्चुअल एक्ज़िक्यूशन सिस्टम (VES)

 

 


error: Content is protected !!