असेंबलर बनाम दुभाषिया
सामान्य तौर पर, कंपाइलर एक कंप्यूटर प्रोग्राम है जो एक भाषा में लिखे गए प्रोग्राम को पढ़ता है, जिसे स्रोत भाषा कहा जाता है, और इसे दूसरी भाषा में अनुवाद करता है, जिसे लक्ष्य भाषा कहा जाता है। परंपरागत रूप से, स्रोत भाषा एक उच्च स्तरीय भाषा है जैसे सी ++ और लक्ष्य भाषा निम्न स्तर की भाषा है जैसे असेंबली भाषा। हालांकि, ऐसे कंपाइलर हैं जो असेंबली भाषा में लिखे गए सोर्स प्रोग्राम को बदल सकते हैं और इसे मशीन कोड या ऑब्जेक्ट कोड में बदल सकते हैं। असेंबलर ऐसे उपकरण हैं। दूसरी ओर, दुभाषिए ऐसे उपकरण हैं जो कुछ प्रोग्रामिंग भाषा में लिखे गए निर्देशों को निष्पादित करते हैं।दुभाषिया या तो सीधे उच्च स्तरीय स्रोत कोड निष्पादित कर सकता है या उन्हें मध्यवर्ती कोड में अनुवाद कर सकता है और फिर इसकी व्याख्या कर सकता है या पहले से संकलित कोड को निष्पादित कर सकता है।
असेंबलर क्या है?
असेंबलर एक सॉफ्टवेयर या एक टूल है जो असेंबली लैंग्वेज को मशीन कोड में ट्रांसलेट करता है। तो, एक असेंबलर एक प्रकार का कंपाइलर होता है और सोर्स कोड असेंबली भाषा में लिखा जाता है। असेंबली एक मानव पठनीय भाषा है, लेकिन इसका आमतौर पर संबंधित मशीन कोड के साथ एक से एक संबंध होता है। इसलिए एक असेंबलर को आइसोमॉर्फिक (एक से एक मैपिंग) अनुवाद करने के लिए कहा जाता है। उन्नत असेंबलर अतिरिक्त सुविधाएँ प्रदान करते हैं जो प्रोग्राम विकास और डिबगिंग प्रक्रियाओं का समर्थन करते हैं। उदाहरण के लिए, मैक्रो असेंबलर कहे जाने वाले असेंबलरों के प्रकार एक मैक्रो सुविधा प्रदान करते हैं।
दुभाषिया क्या है?
एक दुभाषिया एक कंप्यूटर प्रोग्राम या एक उपकरण है जो प्रोग्रामिंग निर्देशों को निष्पादित करता है। एक दुभाषिया या तो सीधे स्रोत कोड को निष्पादित कर सकता है या स्रोत को एक मध्यवर्ती कोड में परिवर्तित कर सकता है और इसे सीधे निष्पादित कर सकता है या एक कंपाइलर द्वारा निर्मित पूर्व-संकलित कोड निष्पादित कर सकता है (कुछ दुभाषिया सिस्टम में इस कार्य के लिए एक कंपाइलर शामिल होता है)।पर्ल, पायथन, MATLAB और रूबी जैसी भाषाएँ प्रोग्रामिंग भाषाओं के उदाहरण हैं जो एक मध्यवर्ती कोड का उपयोग करती हैं। UCSD पास्कल एक पूर्व-संकलित कोड की व्याख्या करता है। Java, BASIC और Samlltalk जैसी भाषाएं पहले स्रोत को बाईटेकोड नामक एक मध्यवर्ती कोड में संकलित करती हैं और फिर उसकी व्याख्या करती हैं।
असेंबलर और दुभाषिया में क्या अंतर है?
एक असेंबलर को एक विशेष प्रकार का कंपाइलर माना जा सकता है, जो केवल असेंबली लैंग्वेज को मशीन कोड में ट्रांसलेट करता है। दुभाषिए ऐसे उपकरण हैं जो किसी भाषा में लिखे गए निर्देशों को निष्पादित करते हैं। दुभाषिया सिस्टम में व्याख्या से पहले कोड को पूर्व-संकलित करने के लिए एक कंपाइलर शामिल हो सकता है, लेकिन एक दुभाषिया को एक विशेष प्रकार का कंपाइलर नहीं कहा जा सकता है। असेंबलर एक ऑब्जेक्ट कोड उत्पन्न करते हैं, जिसे मशीन पर चलाने के लिए लिंकर प्रोग्राम का उपयोग करके लिंक करना पड़ सकता है, लेकिन अधिकांश दुभाषिए प्रोग्राम के निष्पादन को स्वयं पूरा कर सकते हैं। एक असेंबलर आम तौर पर एक से एक अनुवाद करेगा, लेकिन अधिकांश दुभाषियों के लिए यह सच नहीं है।चूंकि असेंबली भाषा में मशीन कोड के साथ एक से एक मैपिंग होती है, इसलिए कोड बनाने के लिए एक असेंबलर का उपयोग किया जा सकता है जो उन अवसरों के लिए बहुत कुशलता से चलता है जिनमें प्रदर्शन बहुत महत्वपूर्ण होता है (उदाहरण के लिए ग्राफिक्स इंजन, व्यक्तिगत कंप्यूटर की तुलना में सीमित हार्डवेयर संसाधनों के साथ एम्बेडेड सिस्टम) जैसे माइक्रोवेव, वाशिंग मशीन आदि)। दूसरी ओर, दुभाषियों का उपयोग तब किया जाता है जब आपको उच्च सुवाह्यता की आवश्यकता होती है। उदाहरण के लिए, उपयुक्त दुभाषिया (JVM) का उपयोग करके एक ही जावा बाइटकोड को विभिन्न प्लेटफार्मों पर चलाया जा सकता है।