कम्पाइलर क्या है?
कंपाइलर एक कंप्यूटर प्रोग्राम है जो उच्च स्तरीय प्रोग्रामिंग भाषा में लिखे गए कोड को मशीन कोड में बदल देता है। यह एक प्रोग्राम है जो मानव-पढ़ने योग्य कोड को एक कंप्यूटर प्रोसेसर को समझने वाली भाषा में अनुवाद करता है (बाइनरी 1 और 0 बिट्स)। कंप्यूटर संबंधित कार्यों को करने के लिए मशीन कोड को संसाधित करता है।
एक संकलक को उस प्रोग्रामिंग भाषा के वाक्यविन्यास नियम का पालन करना चाहिए जिसमें यह लिखा गया है। हालाँकि, कंपाइलर केवल एक प्रोग्राम है और उस प्रोग्राम में पाई गई त्रुटियों को ठीक नहीं कर सकता है। इसलिए, यदि आप कोई गलती करते हैं, तो आपको अपने प्रोग्राम के सिंटैक्स में परिवर्तन करने की आवश्यकता है। अन्यथा, यह संकलन नहीं करेगा।
इंटरप्रेटर क्या है?
एक दुभाषिया एक कंप्यूटर प्रोग्राम है, जो मशीन कोड में प्रत्येक उच्च-स्तरीय प्रोग्राम स्टेटमेंट को कवर करता है। इसमें स्रोत कोड, पूर्व-संकलित कोड और स्क्रिप्ट शामिल हैं। कंपाइलर और दुभाषिए दोनों एक ही काम करते हैं जो उच्च स्तरीय प्रोग्रामिंग भाषा को मशीन कोड में परिवर्तित कर रहा है। हालाँकि, एक कंपाइलर प्रोग्राम चलाने से पहले कोड को मशीन कोड (एक एक्साई बनाएं) में बदल देगा। इंटरप्रिटर्स प्रोग्राम चलाने पर कोड को मशीन कोड में बदल देते हैं।
कुंजी प्रसार
- कंपाइलर एक उच्च-स्तरीय प्रोग्रामिंग भाषा में लिखे गए कोड को मशीन कोड में, एक बार, प्रोग्राम चलने से पहले, बदल देता है, जबकि एक इंटरप्रिटर प्रोग्राम रन के दौरान प्रत्येक उच्च-स्तरीय प्रोग्राम स्टेटमेंट को एक-एक करके मशीन कोड में कवर करता है।
- संकलित कोड तेजी से चलता है जबकि व्याख्यायित कोड धीमा चलता है।
- संकलनकर्ता संकलन के बाद सभी त्रुटियों को प्रदर्शित करता है, दूसरी ओर, दुभाषिया एक-एक करके प्रत्येक पंक्ति की त्रुटियों को प्रदर्शित करता है।
- कंपाइलर अनुवाद लिंकिंग-लोडिंग मॉडल पर आधारित है, जबकि इंटरप्रेटर इंटरप्रिटेशन विधि पर आधारित है।
- कंपाइलर पूरे प्रोग्राम को लेता है जबकि इंटरप्रेटर एक सिंगल लाइन कोड लेता है।
कम्पाइलर और दुभाषिया के बीच अंतर
अंतर का आधार | संकलक | दुभाषिया |
---|---|---|
प्रोग्रामिंग कदम |
|
|
लाभ | प्रोग्राम कोड पहले से ही मशीन कोड में अनुवादित है। इस प्रकार, यह कोड निष्पादन समय कम है। | दुभाषियों का उपयोग करना आसान है, खासकर शुरुआती लोगों के लिए। |
हानि | आप स्रोत कोड पर वापस जाए बिना प्रोग्राम को बदल नहीं सकते। | व्याख्या किए गए प्रोग्राम उन कंप्यूटरों पर चल सकते हैं जिनके पास संबंधित दुभाषिया है। |
मशीन कोड | डिस्क पर मशीन कोड के रूप में मशीन भाषा स्टोर करें | मशीन कोड को सहेजना बिल्कुल नहीं। |
कार्यकारी समय | संकलित कोड तेजी से चलाते हैं | इंटर कोड कोड धीमा |
नमूना | यह भाषा ट्रांसलिंकिंग-लोडिंग मॉडल पर आधारित है। | यह इंटरप्रिटेशन मेथड पर आधारित है। |
कार्यक्रम पीढ़ी | आउटपुट प्रोग्राम (एक्सई के रूप में) उत्पन्न करता है जिसे मूल कार्यक्रम से स्वतंत्र रूप से चलाया जा सकता है। | आउटपुट प्रोग्राम उत्पन्न न करें। इसलिए वे निष्पादन के दौरान हर समय स्रोत कार्यक्रम का मूल्यांकन करते हैं। |
क्रियान्वयन | कार्यक्रम निष्पादन संकलन से अलग है। संपूर्ण आउटपुट प्रोग्राम संकलित होने के बाद ही इसका प्रदर्शन किया गया। | कार्यक्रम निष्पादन एक व्याख्या प्रक्रिया का एक हिस्सा है, इसलिए इसे लाइन द्वारा लाइन में किया जाता है। |
मेमोरी की आवश्यकता | लक्ष्य कार्यक्रम निष्पादन योग्य और स्मृति में संकलक की आवश्यकता नहीं है। | व्याख्या के दौरान दुभाषिया स्मृति में मौजूद है। |
के लिए सबसे उपयुक्त | विशिष्ट लक्ष्य मशीन के लिए बाध्य और पोर्ट नहीं किया जा सकता है। C और C ++ एक सबसे लोकप्रिय प्रोग्रामिंग भाषा है जो संकलन मॉडल का उपयोग करती है। | वेब वातावरण के लिए, जहां लोड समय महत्वपूर्ण हैं। सभी संपूर्ण विश्लेषण किए जाने के कारण, छोटे कोड को संकलित करने के लिए अपेक्षाकृत बड़ा समय लगता है जो कई बार नहीं चलाया जा सकता है। ऐसे मामलों में, दुभाषिए बेहतर होते हैं। |
कोड अनुकूलन | कंपाइलर पूरे कोड को उल्टा देखता है। इसलिए, वे बहुत सारे अनुकूलन करते हैं जो कोड को तेजी से चलाते हैं | दुभाषिए कोड लाइन को लाइन से देखते हैं, और इस प्रकार अनुकूलन क्षमता के रूप में मजबूत नहीं होते हैं |
डायनामिक टाइपिंग | कंपाइलर के रूप में लागू करने में कठिनाई का अनुमान नहीं लगा सकते हैं कि बारी के समय क्या होता है। | व्याख्या की गई भाषाएँ डायनामिक टाइपिंग का समर्थन करती हैं |
प्रयोग | यह उत्पादन पर्यावरण के लिए सबसे उपयुक्त है | यह कार्यक्रम और विकास के लिए सबसे उपयुक्त है। |
त्रुटि निष्पादन | संकलनकर्ता संकलन समय पर सभी त्रुटियों और चेतावनी को प्रदर्शित करता है। इसलिए, आप त्रुटियों को ठीक किए बिना प्रोग्राम नहीं चला सकते हैं | दुभाषिया किसी एक कथन को पढ़ता है और यदि कोई हो तो त्रुटि दिखाता है। आपको अगली पंक्ति की व्याख्या करने के लिए त्रुटि को ठीक करना होगा। |
इनपुट | यह एक संपूर्ण कार्यक्रम लेता है | यह कोड की एक पंक्ति लेता है। |
उत्पादन | शिकायतकर्ता मध्यवर्ती माचनी कोड उत्पन्न करते हैं। | दुभाषिया कभी भी कोई मध्यवर्ती मशीनी कोड उत्पन्न नहीं करता है। |
त्रुटियाँ | सभी त्रुटियों के बाद, संकलन, सभी एक ही समय में प्रदर्शित करें। | प्रत्येक पंक्ति की सभी त्रुटियों को एक-एक करके प्रदर्शित करता है। |
प्रोग्रामिंग भाषाओं से संबंधित | C, C ++, C #, Scala, Java सभी का उपयोग उचित है। | PHP, पर्ल, रूबी एक दुभाषिया का उपयोग करता है। |
संकलक की भूमिका
- शिकायतकर्ता स्रोत कोड पढ़ता है, निष्पादन योग्य कोड आउटपुट करता है
- एक उच्च-स्तरीय भाषा में लिखे गए सॉफ़्टवेयर को उन निर्देशों में परिवर्तित करता है जिन्हें कंप्यूटर समझ सकता है। यह उस पाठ को रूपांतरित करता है जिसे एक प्रोग्रामर एक प्रारूप में लिखता है जिसे सीपीयू समझ सकता है।
- संकलन की प्रक्रिया अपेक्षाकृत जटिल है। यह कार्यक्रम के विश्लेषण और प्रसंस्करण में बहुत समय व्यतीत करता है।
- निष्पादन योग्य परिणाम मशीन-विशिष्ट बाइनरी कोड का कुछ रूप है।
दुभाषिया की भूमिका
- दुभाषिया RUN समय के दौरान स्रोत कोड लाइन-बाय-लाइन को कनवर्ट करता है।
- इंटरप्रिटेशन उच्च स्तरीय भाषा में लिखे गए प्रोग्राम को मशीन लेवल लैंग्वेज में पूरी तरह से ट्रांसलेट करता है।
- दुभाषिया कार्यक्रम के मूल्यांकन और संशोधन की अनुमति देता है जबकि वह क्रियान्वित होता है।
- कार्यक्रम के विश्लेषण और प्रसंस्करण के लिए अपेक्षाकृत कम समय बिताया
- संकलक की तुलना में कार्यक्रम का निष्पादन अपेक्षाकृत धीमा है
उच्च स्तर की भाषाएं
उच्च-स्तरीय भाषाएँ, जैसे C, C ++, JAVA, आदि, अंग्रेजी के बहुत निकट हैं। यह प्रोग्रामिंग प्रक्रिया को आसान बनाता है। हालांकि, इसे निष्पादन से पहले मशीन की भाषा में अनुवादित किया जाना चाहिए। यह अनुवाद प्रक्रिया या तो संकलक या दुभाषिया द्वारा संचालित की जाती है। स्रोत कोड के रूप में भी जाना जाता है।
मशीन कोड
मशीन की भाषाएं हार्डवेयर के बहुत करीब हैं। हर कंप्यूटर की अपनी मशीन की भाषा होती है। एक मशीन भाषा कार्यक्रम बाइनरी पैटर्न की श्रृंखला से बने होते हैं। (उदा। 110110) यह सरल ऑपरेशन का प्रतिनिधित्व करता है जिसे कंप्यूटर द्वारा किया जाना चाहिए। मशीन भाषा कार्यक्रम निष्पादन योग्य हैं ताकि उन्हें सीधे चलाया जा सके।
वस्तु कोड
स्रोत कोड के संकलन पर, इंटेल, एएमडी, एआरएम जैसे विभिन्न प्रोसेसर के लिए उत्पन्न मशीन कोड अलग है। tTo कोड को पोर्टेबल बनाते हैं, स्रोत कोड को पहले ऑब्जेक्ट कोड में बदल दिया जाता है। यह एक मध्यस्थ कोड (मशीन कोड के समान) है जिसे कोई प्रोसेसर नहीं समझेगा। रन टाइम पर, ऑब्जेक्ट कोड अंतर्निहित प्लेटफ़ॉर्म के मशीन कोड में बदल जाता है।
जावा संकलित और व्याख्या दोनों है।
संकलक के सापेक्ष लाभों का फायदा उठाने के लिए व्याख्याकार हैं कुछ प्रोग्रामिंग भाषा जैसे कि जावा संकलित और व्याख्या दोनों हैं। जावा कोड को ही ऑब्जेक्ट कोड में संकलित किया गया है। रन समय में, JVM ऑब्जेक्ट कोड को लक्ष्य कंप्यूटर की मशीन कोड में व्याख्या करता है।