Compiler क्या है? Compiler और Interpreter में क्या अंतर है?

Compiler उन लोगों के बीच परिचित है जो कंप्यूटर प्रोग्रामिंग के क्षेत्र से संबंधित हैं या जो प्रोग्रामिंग भाषा विकसित करते हैं।

एक कंपाइलर मानव-लिखित कंप्यूटर भाषा को मशीनी भाषा या कोड में परिवर्तित करता है। यह कई अन्य काम भी करता है जैसेकि कोड कि त्रुटियों का पता लगाना या त्रुटियों को रोकना, सिंटैक्स का विश्लेषण करना और कोड का अनुकूलन करना।

अगर आप एक सॉफ्टवेयर डेवलपर बनना चाहते हैं या कंप्यूटर विज्ञान के बारे में ज्ञान प्राप्त करने में रुचि रखते हैं, तो आपको कंपाइलर्स के बारे में अच्छी तरह से जानना होगा।

तो, इस लेख में आप जान पाऐगे कि Compiler क्या है और कंपाइलर कितने प्रकार के होते हैं। कंपाइलर्स के क्या उपयोग हैं, वे कैसे काम करते हैं और उनके क्या फायदे हैं? तो आइये सबसे पहले विस्तार से जानलेते हैं कि कंपाइलर क्या है।

Compiler क्या है?

कंपाइलर एक कंप्यूटर प्रोग्राम या सॉफ्टवेयर प्रोग्राम है जो source program को machine program में अनुवादित करता है।

इस प्रोग्राम का उपयोग मशीन कोड या कंप्यूटर भाषा को जेनरेट करने के लिए किया जाता है यानि high-level programming langue को low-level programming langue मे कन्वर्ट करता है। जो कंप्यूटर सिस्टम को पीछे से निष्पादित या चलाता है।

इसका उपयोग source code को परिवर्तित करने के लिए किया जाता है जो कई अलग-अलग प्रोग्रामिंग भाषाओं, जैसे सी, सी++ और जावा स्क्रिप्ट में लिखा जाता है।

एक कंपाइलर का उपयोग कोड को अनुकूलित करने और यह सुनिश्चित करने के लिए किया जाता है कि स्रोत कोड सही ढंग से निष्पादित हो और कंप्यूटर के लिए कोड को समझना आसान हो।

यह इस बात को सुनिश्चित करने में भी मदद करता है कि जेनरेट किया गया मशीन कोड उपयोग किए जा रहे हार्डवेयर के लिए सही है।

एक कंपाइलर का उपयोग कई अन्य अलग-अलग उद्देश्यों के लिए भी किया जाता है, जैसे कोड मे त्रुटियो का पता लगाना या कुशलतापूर्वक प्रदर्शन के लिए स्रोत कोड में बग का पता लगाना और उन्है सही करने।

Read Also

Malware meaning in hindi | मैलवेयर क्या है?

PHP full form in hindi

कंपाइलर्स का उपयोग

आज पुरा जमाना computer पर depend है क्योकि ये एक ऐसी intelligent machine है जिसने लोगो कि नमुमकिन काम को भी आसान बना दिया है।आज ऐसा कोई क्षेत्र नही जहा computer का इस्तेमाल न किया जाता हो।

लेकिन हम सभी जानते है कि एक computer को इतना ताकरवर बनाने के पिछे computer programming की बड़ी भुमिका होती है, क्योकि विना programming या computer language के ये एक बेजान मशिन के अलाबा ओर कुछ नही है।

क्योकि एक computer खुदसे कोई काम नही कर सकता जब तक न उसे कोई instructions न मिले। Programming ही है जो एक कंप्यूटर को निर्देश देता है कि उसे क्या करना है।

इतना तो आपको भी पता होगा कि कंप्यूटर Human langue को नही समझता। उसे समझाने के लिए उसीकि भाषा मे निर्देश देना होता है जिसे हम Machine language के तौरपर जानते है।

जैसेकि Java, C++, Python आदि और ये सभी high-level machine language होते है जिन्है programmer द्बारा डेवलप किया जाता है। शाएद आपको पता न हो कि कंप्यूटर कभी-कभी इन जटिल भाषाओ को समझने मे नकाम हो जाते है क्योकि एक कंप्यूटर केवल bytecode को ही आसानी से समझ पाता है और वही से Compiler का भुमिका शुरु होता।

Compiler दरसल एक interpreter कि तरह काम करता है जो प्रोग्रामिंग भाषा को मशीनि भाषा में परिवर्तित करता है ताकि कंप्यूटर उन निर्देशो को ठिक से समझ सके कि उसे करना क्या है।

Read Also

System software क्या है? कैसे काम करता है और इसके प्रकार

Computer Network क्या है?कैसे काम करता है?नेटवर्क के प्रकार

कंपाइलर के विभिन्न प्रकार क्या हैं?

कंपाइलर्स को मुख्य रूप से तीन प्रकारों में वर्गीकृत किया गया है, लेकिन डिज़ाइन और कार्यक्षमताओ के आधार पर वे विभिन्न प्रकार के होते है:

  • Single Pass Compilers
  • Two Pass Compilers
  • Multi pass Compilers

इसे बेहतर ढंग से समझने के लिए यहां इसकी कुछ सामान्य प्रकार के बारे मे दिया गया हैं:

1. Single Pass Compiler: ये एक ही बार में पुरी source code को मशीन कोड में translate करने का काम करता हैं। ये वाक्यविन्यास से लेकर, सिमेंटिक विश्लेषण, कोड जनरेशन जैसे काम तेज़ी से करते है।

लेकिन इसमे त्रुटियो के जाँच करने कि क्षमता तुलनात्वक कम होता हैं क्योकि इसमे source code का गहराई से analyze नही किया जाता।

How does a compiler works in hindi

2. Two Pass Compiler: इसमे analyze की प्रक्रिया दो चरणों में विभाजित होता है और हर एक चरण एक pass होता है। पहले पास में, यह source code का केवल प्राथमिक विश्लेषण किया जाता है, और डेटा संरचनाओं और प्रतीक तालिकाओं का निर्माण किया जाता है।

दूसरे पास में, यह पहले पास में मिली जानकारी के आधार पर कोड जेनरट करता है। इस पराव मे कोड का गहराई से विश्लेषण किया जाता है और इसमे अनुकूलन की प्रक्रिया व्यापक स्तर पर होता है।

Two Pass Compiler

3. Multi-pass compiler: प्रोग्राम को कार्यात्मक बनाने के लिए source code को कई अलग अलग अनुक्रमों में व्याख्या किया जाता है। प्रत्येक व्याख्याओ का एक विशिष्ट कार्य होता है और आउटपुट रेजल्टस को अगली प्रक्रिया के लिए इनपुट डेटा के रूप में उपयोग करता है।

सिंगल पास कंपाइलर्स के विपरीत, जो source code की केवल एक बार व्याख्या करते हैं, मल्टी-पास कंपाइलर्स इसे अधिक डिटेल मे विश्लेषण करता हैं और कोड को अनुकूलित करता हैं। यह पूरे प्रक्रिया का गहरे विश्लेषण के साथ source code की व्याख्या करता है।

4. Cross Compiler: एक क्रॉस-कंपाइलर एक प्लेटफ़ॉर्म या आर्किटेक्चर पर चलता है लेकिन एक अलग प्लेटफ़ॉर्म या आर्किटेक्चर के लिए कोड जेनरट करता है।

इसका उपयोग आमतौर पर एम्बेडेड सिस्टम के लिए सॉफ़्टवेयर विकसित करने या किसी हार्डवेयर प्लेटफ़ॉर्म को टारगेट करने के लिए किया जाता है।

क्रॉस कंपाइलर डेवलपर्स को एक मशीन पर कोड लिखने और इसे दूसरे के लिए संकलित करने में उपियोगी बनाता है, जिससे उन्है पोर्टेबिलिटी और अनुकूलता की सुविधा मिलती है।

5. Just-In-Time Compilers(JIT): यह निष्पादित होने से ठीक पहले, यानि रन टाइम (Runtime) पर कोड का अनुवाद करता है। यह प्रोग्राम निष्पादन के दौरान आवश्यकतानुसार मशीन कोड उत्पन्न करता है।

इसका उपयोग आमतौर पर वर्चुअल मशीनों (जैसे, जावा वर्चुअल मशीन, .NET कॉमन लैंग्वेज रनटाइम) में किया जाता है और अनुकूलन के माध्यम से प्रदर्शन में सुधार लाता है।

6. Ahead-of-Time (AOT) Compilers: एओटी कंपाइलर, प्रोग्राम निष्पादित होने से पहले कोड का अनुवाद करता हैं और पूरे प्रोग्राम को समय से पहले मशीन कोड में संकलित किया जाता है,

जिसके परिणामस्वरूप एक स्टैंडअलोन निष्पादन होता है। यह खासकर C और C++ जैसी भाषाओं के साथ होता है, और संकलित कोड का एक अलग प्लेटफ़ॉर्म होता है।

7. Source-to-Source Compilers: इसे ट्रांसपिलर कंपाइलर के रूप में भी जाना जाता है।ये एक प्रोग्रामिंग भाषा में लिखे गए स्रोत कोड को लेते हैं और दूसरी समकक्ष भाषा बाले कोड में अनुवाद करते हैं।

इसका उपयोग अक्सर माइग्रेशन के उद्देश्यों से किया जाता है, जिसे किसी खास प्लेटफ़ॉर्म को टारगेट करते हुए कोड को उच्च-स्तरीय भाषा में लिखा जाता है।

8. Optimizing Compilers: ये जेनरेट किए गए मशीन कोड की दक्षता में सुधार लाने का काम करता हैं। वे कोड के प्रदर्शन को वहतर करने के लिए विभिन्न अनुकूलन तकनीकों का का उपयोग करता हैं, जैसेकि लूप अनरोलिंग, इनलाइनिंग आदि ।

Read Also

Data क्या है? data meaning in hindi और डेटा के प्रकार

URL क्या है? कैसे काम करता है? और यूआरएल के प्रकार

कंपाइलर कैसे काम करता है?

जैसाकि मेने आपसे पहले भी जिकर किया कि कंपाइलर एक प्रोग्राम है जो प्रोग्रामिंग भाषा में लिखे जाने बाले source code को मशीनी कोड में बदल देता है जिसे एक कंप्यूटर आसानी से पढ़ या समझ सकता है और उस हिसाब से वे आगे आपना काम कर सकता है।

संकलन कि यह प्रक्रिया कई अलग-अलग चरणो मे होता हैं, और इसमे अलग-अलग तरीके से source code का विश्लेषण किया जाता है और उन्है कंप्यूटर द्बारा समझे जाने बाले भाषाओ मे परिवर्तन किया जाता है। निचे इनके काम करने के प्रक्रिया के बारे में संक्षेप में बताया गया है:

1. Lexical Analysis:

ये संकलन का पहला पराव है जहा इनका शाब्दिक विश्लेषण किया जाता है। संकलन कि इस प्रक्रिया को टोकनाइजेशन भी कहा जाता है। इस ष्टेप में, कंपाइलर source code को टोकन की एक धारा में अलग करता है। इसमे हर एक टोकन भाषा के मूल तत्व का प्रतिनिधित्व करता है, जैसे कि कीवर्ड, पहचानकर्ता, ऑपरेटर, या विराम चिह्न।

2. Syntax Analysis:

यह संकलन का अगला चरण है जिसमें वाक्यविन्यास का विश्लेषण किया जाता है। इस प्रक्रिया को पार्सिंग के नाम से भी जाना जाता है। इस प्रक्रिया के दौरान, कंपाइलर प्रोग्रामिंग भाषा में निहित व्याकरण के नियमों कि जाच करता है ताकि उनका स्टेटमेंट बनाए जा सके ओर उन्है संयोजित किया जा सके।

3. Semantic Analysis:

इस चरण में, कोड के पाठ से अर्थ वाक्य से डेटा निकाला जाता है और किसी विशेष संदर्भ में शब्दों के बीच संबंधों की पहचान करके वाक्यों और पैराग्राफों को समझने और व्याख्या करने के लिए व्याकरणिक संरचना का विश्लेषण किया जाता है।

4. Intermediate Code Generation:

अगर प्रोग्राम पिछले सभी चरणों को पार कर लेता है, तो कंपाइलर एक मध्यवर्ती कोड जेनरेट करता है। हलांकी इंटरमीडिएट कोड प्रोग्राम का केवल एक प्रतिनिधित्व है जो स्रोत कोड की तुलना में मशीन कोड के लगवग करीब होता है, लेकिन यह अभी भी निष्पादन के योग्य नहीं है।

5. Optimization:

अनुकूलन संकलन का पांचवां चरण है और इस चरण में, कंपाइलर अनावश्यक निर्देशों को हटाकर, निर्देशों को पुन: व्यवस्थित करता है और अधिक कुशल एल्गोरिदम का उपयोग करके पिछले चरण में उत्पन्न किए गए intermediate कोड के प्रदर्शन में सुधार करने का प्रयास करता है।

6. Code Generation:

कोड जनरेशन संकलन का सबसे अंतिम चरण है और इस चरण में, कंपाइलर intermediate code को मशीन कोड में परिवर्तित करता है। मशीन कोड एक निम्न-स्तरीय भाषा होता है जिसे कंप्यूटर का प्रोसेसर आसानी से समझ सकता है और निष्पादित कर सकता है।

Read Also

Cloud Storage क्या है? और कितने प्रकार के होते है?

Internet क्या है?इंटरनेट कैसे काम करता है?इंटरनेट के प्रकार

Interpreter क्या है?

interpreter एक प्रकार का प्रोग्राम है जो उच्च-स्तरीय प्रोग्रामिंग भाषा में लिखे गए source code को सीधे तोरपर निष्पादित करता है, प्रोग्राम निष्पादन के दौरान इसे मशीन कोड या intermediate code में अनुवाद करता है।

कंपाइलरों के विपरीत, जो निष्पादन से पहले पुरी source code को मशीन कोड में अनुवादित करता हैं, वही interpreter लाइन दर लाइन काम करता हैं, और कोड को क्रमिक रूप से निष्पादित करता हैं।

एक interpreter की प्राथमिक भूमिका source code को सीधे पढ़ना, पार्स करना और निष्पादित करना है, प्रोग्राम चलने पर इसे मशीन द्बारा समझने योग्य निर्देशों में अनुवाद करना है।

Compiler और Interpreter में क्या अंतर है?

विशेषताकंपाइलरइंटरप्रेटर
अनुवाद दृष्टिकोणनिष्पादन से पहले संपूर्ण स्रोत कोड को मशीन कोड या मध्यवर्ती कोड में अनुवादित करता है।स्रोत कोड का लाइन दर लाइन अनुवाद करता है, रनटाइम के दौरान इसे तुरंत निष्पादित करता है।
निष्पादन की गतिआम तौर पर तेजी से निष्पादन होता है क्योंकि चलने से पहले पूरे कोड को अनुकूलित और अनुवादित किया जाता है।निष्पादन गति के मामले में धीमी हो सकती है क्योंकि निष्पादन के दौरान कोड का तुरंत अनुवाद किया जाता है।
आउटपुटएक स्टैंडअलोन निष्पादन योग्य फ़ाइल या मध्यवर्ती कोड उत्पन्न करता है।एक स्टैंडअलोन निष्पादन योग्य उत्पन्न नहीं करता; स्रोत कोड को सीधे निष्पादित करता है।
डिबगिंगविकास और निष्पादन चरणों के बीच अलगाव के कारण डिबग करना अधिक चुनौतीपूर्ण हो सकता है।आम तौर पर डिबगिंग के लिए बेहतर समर्थन प्रदान करता है क्योंकि त्रुटियों को वास्तविक समय में पहचाना और संबोधित किया जा सकता है।
पोर्टेबिलिटीसंकलित कोड प्लेटफ़ॉर्म-विशिष्ट हो सकता है, जिसके लिए विभिन्न प्लेटफ़ॉर्म के लिए पुनर्संकलन की आवश्यकता होती है।अधिक पोर्टेबल हो सकता है, क्योंकि interpreter स्वयं विभिन्न प्लेटफार्मों पर चलता है, जिससे समान स्रोत कोड को विभिन्न प्रणालियों पर निष्पादित किया जा सकता है।
मेमरीसंकलित प्रोग्रामों में अक्सर छोटी मेमोरी फ़ुटप्रिंट होती है क्योंकि अनुकूलन पहले से किया जाता है।वास्तविक समय में व्याख्या किए गए कोड और डेटा संरचनाओं पर नज़र रखने की आवश्यकता के कारण इसमें बड़ी मेमोरी फ़ुटप्रिंट हो सकती है।
भाषाओं के उदाहरणC, C++, Java (bytecode के संकलन के बाद), आदि।Python, JavaScript, Ruby, आदि।
अनुकूलनआम तौर पर इसमें वैश्विक अनुकूलन के अधिक अवसर होते हैं क्योंकि यह एक ही बार में संपूर्ण कोड को संसाधित करता है।वैश्विक अनुकूलन के संदर्भ में सीमित क्योंकि यह लाइन दर लाइन काम करता है और इसमें कोड का स्थानीय दृश्य होता है।
हाइब्रिड के उदाहरणजस्ट-इन-टाइम (जेआईटी) कंपाइलर अनुकूलन उद्देश्यों के लिए रनटाइम के दौरान कुछ अनुवाद करते हैं।कुछ interpreters बेहतर प्रदर्शन के साथ व्याख्या के लचीलेपन को संयोजित करने के लिए जेआईटी संकलन का उपयोग करते हैं।
कार्यप्रवाहप्रोग्राम को निष्पादित करने से पहले एक अलग संकलन चरण की आवश्यकता होती है।अधिक इंटरैक्टिव विकास प्रक्रिया की अनुमति देता है क्योंकि परिवर्तनों का तुरंत परीक्षण किया जा सकता है।
Difference between Compiler and Interpreter

संकलन उच्च स्तरीय भाषा को निम्न स्तरीय भाषा में परिवर्तित करने की एक प्रक्रिया है, और प्रत्येक चरण के लिए अलग अलग तरीकों का उपयोग किया जाता है। ये उपयोग की जा रही प्रोग्रामिंग भाषा और कंपाइलर के आधार पर भिन्न होते हैं।

Read Also

HDD क्या है?HDD ka full form क्या है?

IOT meaning in hindi | आईओटी का फुल फॉर्म क्या है?

Processor meaning in hindi | प्रोसेसर क्या है?

RAM full form in Hindi | ram क्या होता है?

Xml full form in Hindi

About The Author

Author and Founder digipole hindi

Biswajit

Hi! Friends I am BISWAJIT, Founder & Author of 'DIGIPOLE HINDI'. This site is carried a lot of valuable Digital Marketing related Information such as Affiliate Marketing, Blogging, Make Money Online, Seo, Technology, Blogging Tools, etc. in the form of articles. I hope you will be able to get enough valuable information from this site and will enjoy it. Thank You.