आपने जो परिभाषा ऊपर उद्धृत की है, एक शुरुआती के लिए पूरी तरह से समझने के लिए बहुत सामान्य है और इसलिए मुझे इसे कुछ ऐसा करने के लिए सरल बनाएं जो हम व्यावहारिक रूप से देखते हैं।
कंपाइलर: एक प्रोग्राम का वर्णन करने के लिए एक छत्र शब्द है जो एक भाषा में लिखे गए स्रोत कोड को लेता है और किसी अन्य भाषा में (या कई) आउटपुट फाइल का उत्पादन करता है। व्यवहार में हम ज्यादातर इस शब्द का उपयोग एक संकलक जैसे gcc के बारे में बताने के लिए करते हैं जो इनपुट के रूप में C कोड में लेता है और आउटपुट के रूप में एक बाइनरी निष्पादन योग्य (मशीन कोड) का उत्पादन करता है।
ट्रांसपॉयलर को सोर्स-टू-सोर्स कंपाइलर के रूप में भी जाना जाता है। तो संक्षेप में वे संकलक का एक सबसेट हैं जो एक स्रोत कोड फ़ाइल में लेते हैं और इसे किसी अन्य भाषा में किसी अन्य स्रोत कोड फ़ाइल में या उसी भाषा के किसी भिन्न संस्करण में परिवर्तित करते हैं। आमतौर पर मानव द्वारा समझने योग्य है। इस आउटपुट को अभी भी मशीन पर चलाने में सक्षम होने के लिए एक कंपाइलर या दुभाषिया से गुजरना पड़ता है।
ट्रांसपैरर्स के कुछ उदाहरण:
- Emscripten : Transpiles C / C ++ को JavaScript
- बैबेल : ट्रांसपाइल्स ES6 + का कोड ES5 (ES6 और ES5 जावास्क्रिप्ट भाषा के विभिन्न संस्करण या पीढ़ी हैं)
अब, "एब्सट्रैक्शन के समान स्तर" से उनका क्या मतलब है: जैसा कि मैंने कहा कि यह स्रोत फ़ाइल को संकलित / प्रेषित करता है, कोई यह तर्क दे सकता है कि असेंबली भाषा भी एक स्रोत फ़ाइल है और इस प्रकार gcc भी एक ट्रांसपिलर है। तो, यह तर्क है कि अमूर्तता के समान स्तर क्या होता है।
भाषाओं को निचले, मध्य और उच्च स्तर में वर्गीकृत करने की धारणा अमूर्त के स्तर पर आधारित है जो वे मशीन / वास्तुकला के वास्तविक कामकाज से प्रदान करते हैं।
असेंबली जैसी निचली स्तर की भाषाएं प्रोसेसर आर्किटेक्चर के बहुत करीब हैं यानी अलग-अलग प्रोसेसर के लिए अलग-अलग निर्देश हैं। जबकि C / C ++ / Java / जावास्क्रिप्ट, सार यह सब दूर और अधिक अमूर्तता प्रदान करता है।
तो, एक ट्रांसपिलर उस भाषा के लिए संकलित करता है जो इस अमूर्त के संदर्भ में आपके द्वारा शुरू की गई भाषा के करीब है (या निम्न-मध्य-उच्च-स्तरीय भाषा सीढ़ी में उस भाषा के स्तर के करीब है)।
उम्मीद है की यह मदद करेगा!