कम्पाइलर और इंटरप्रेटर में अंतर (Difference between Compiler and Interpreter)
प्रोग्रामर आम तौर पर हाई लेवल लैंग्वेज का उपयोग करके कंप्यूटर प्रोग्राम लिखते हैं। हाई लेवल लैंग्वेज वह लैंग्वेज होती है जिसे यूजर समझ सकता है यूजर जिस लैंग्वेज को समझता है उसे सोर्स कोड कहा जाता है। हालाँकि, कंप्यूटर हाई लेवल लैंग्वेज को नहीं समझता है। कंप्यूटर केवल 0 और 1 बाइनरी नम्बर को समझता है जिसे मशीन कोड कहा जाता है।
सोर्स कोड और हाई लेवल लैंग्वेज को मशीन कोड में बदलने के लिए, कंपाइलर या इंटरप्रेटर दोनों का उपयोग किया जाता हैं। लेकिन कंपाइलर या इंटरप्रेटर कैसे काम करता है, इसके बीच दोनों में अंतर हैं। कंपाइलर एक ट्रांसलेटर है जो सोर्स कोड (हाई लेवल लैंग्वेज) को मशीन लैंग्वेज में बदल देता है। जबकि इंटरप्रेटर एक प्रोग्राम है जो सोर्स कोड में लिखे गए प्रोग्राम के एक्सीक्यूट की नकल करता है। कंपाइलर और इंटरप्रेटर के बीच मुख्य अंतर यह है कि कम्पाइलर एक बार में पूरे प्रोग्राम को ट्रांसलेट करता है और जो भी एरर आती है उसे बताता है जबकि इंटरप्रेटर एक एक लाइन को ट्रांसलेट करता है और यदि किसी लाइन में एरर रहती है तो जब तक उस एरर को ठीक नहीं कर दिया जाता यह आगे नहीं बढ़ता है|
कंपाइलर क्या है? (What is Compiler?)
Compiler executable file बनाने के लिए Source Code को Machine code में translate करता है| ये code executable file के object code कहलाते है| Programmer इस executable object file को किसी दूसरे computer पर copy करने के पश्चात् execute कर सकते हैं| दूसरे शब्दों में Program एक बार Compile हो जाने के बाद स्वतंत्र रूप से executable file बन जाता है जिसको execute होने के लिए compiler की आवश्यकता नहीं होती है| प्रत्येक Programming language को Compiler की आवश्यकता होती हैं|
इंटरप्रेटर क्या है? (What is Interpreter?)
इंटरप्रेटर एक प्रोग्राम होता हैं जो हाई लेवल लैंग्वेज में लिखे प्रोग्राम को मशीन लैंग्वेज में बदलने का कार्य करता है इंटरप्रेटर एक–एक इंस्ट्रक्शन को बारी-बारी से मशीन लैंग्वेज में ट्रांसलेट करता है | यह हाई लेवल लैंग्वेज के प्रोग्राम के सभी इंस्ट्रक्शन को एक साथ machine language में translate नहीं करता है|
असेम्बलर क्या है? (What is Assembler?)
असेम्बलर एक प्रोग्राम है जो असेंबली लैंग्वेज को मशीन लैंग्वेज में ट्रांसलेट करता है| इसके अलावा यह हाई लेवल लैंग्वेज को मशीन लैंग्वेज में ट्रांसलेट करता है यह निमोनिक कोड (mnemonic code) जैसे- ADD, NOV, SUB आदि को बाइनरी कोड में बदलता है|
कम्पाइलर और इंटरप्रेटर में अंतर (Difference between compiler and interpreter)
S.No. |
Compiler |
Interpreter |
1 | कंपाइलर एक ट्रांसलेटर है जो सोर्स कोड (हाई लेवल लैंग्वेज) को मशीन लैंग्वेज में बदल देता है। | इंटरप्रेटर एक प्रोग्राम होता हैं जो High level language में लिखे Program को Machine Language में बदलने का कार्य करता है |
2 | यदि प्रोग्राम के सिंटेक्स में कोई एरर होती है तो यह उस एरर को एक साथ बाद में बताता है| | इंटरप्रेटर एक एक लाइन को ट्रांसलेट करता है और यदि किसी लाइन में एरर रहती है तो जब तक उस एरर को ठीक नहीं कर दिया जाता यह आगे नहीं बढ़ता है| |
3 | कम्पाइलर में सोर्स कोड को ट्रांसलेट करने में समय और प्रोसेसिंग कम लगती है| | इंटरप्रेटर में सोर्स कोड को ट्रांसलेट करने में समय ज्यादा लगता है| |
4 | इसमें इंटरमीडिएट ऑब्जेक्ट कोड उत्पन्न होता है, इसलिए इसमें मेमोरी का प्रयोग होता है| | इसमें कोई इंटरमीडिएट ऑब्जेक्ट कोड उत्पन्न नहीं होता है, इसलिए यह मेमोरी का कम प्रयोग करता है| |
5 | इसमे debugging करना आसान नहीं होता है| | इसमे debugging करना आसान होता है| |
6 | पायथन, रूबी जैसी प्रोग्रामिंग लैंग्वेज इंटरप्रेटर का उपयोग करती हैं। | C, C ++, Java जैसी प्रोग्रामिंग लैंग्वेज कंपाइलर का उपयोग करती हैं। |
कम्पाइलर और इंटरप्रेटर के बीच महत्वपूर्ण अंतर
- कंपाइलर एक पूरे प्रोग्राम को ट्रांसलेट करता है, लेकिन इंटरप्रेटर प्रोग्राम को एक एक लाइन से ट्रांसलेट करता है।
- कंपाइलर तुलनात्मक रूप से इंटरप्रेटर से अधिक तेज होता है क्योंकि कंपाइलर एक बार में पूरे प्रोग्राम को ट्रांसलेट कर सकता है जबकि इंटरप्रेटर एक के बाद एक कोड की प्रत्येक लाइन को कम्पाइल करता हैं।
- कंपाइलर को ऑब्जेक्ट कोड की पीढ़ी के कारण इंटरप्रेटर की तुलना में अधिक मेमोरी की आवश्यकता होती है।
- कंपाइलर एक बार में सभी त्रुटियों को दिखता है जबकि इंटरप्रेटर एक एक लाइन को ट्रांसलेट करता है और एरर को दिखाता है|
- कंपाइलर में जब प्रोग्राम में कोई त्रुटि होती है, तो वह उस प्रोग्राम को रोक देता है और त्रुटि को सुधारने के बाद पूरे प्रोग्राम को फिर से ट्रांसलेट करता है। इसके विपरीत, इंटरप्रेटर एक एक लाइन को ट्रांसलेट करता है और यदि कोई त्रुटि होती है, तो यह इसके ट्रांसलेशन को रोक देता है और त्रुटि को हटाने के बाद ही ट्रांसलेशन करता है।
- कम्पाइलर प्रोसेस को दो चरणों की आवश्यकता होती है जिसमें सबसे पहले सोर्स कोड को टारगेट प्रोग्राम के लिए ट्रांसलेट किया जाता है फिर एक्सीक्यूट किया जाता है। जबकि इंटरप्रेटर में यह एक एक स्टेप प्रोसेस करता है जिसमें एक ही समय में सोर्स कोड कम्पाइल और एक्सीक्यूट किया जाता है।
- कम्पाइलर का उपयोग प्रोग्रामिंग भाषाओं जैसे C, C ++, C #, Scala, आदि में किया जाता है। जबकि इंटरप्रेटर का उपयोग PHP, Ruby, Python, आदि भाषाओं में किया जाता है।