मुझे पता है कि यह पोस्ट पुराना है, लेकिन मैंने सोचा कि मैं चर्चा में थोड़ा सा जोड़ सकता हूं क्योंकि वे चूक गए हैं। तो भविष्य के पाठकों को यह सहायक मिल सकता है।
मुझे आश्चर्य है कि हर कोई यहां बिंदु खो रहा है। आप लगभग किसी भी भाषा में किसी भी तरह का कंपाइलर, दुभाषिया, या वर्चुअल मशीन लिख सकते हैं। सी संकलक लिखने के लिए सी का उपयोग करते समय एक नया संकलक संकलित करने के लिए एक सी संकलक की आवश्यकता होती है। हालांकि, आउटपुट मूल कोड है जो निर्दिष्ट प्लेटफ़ॉर्म पर चलता है। सिर्फ इसलिए कि JVM को उस भाषा में लिखा गया है जो JVM पर चलता है इसका मतलब यह नहीं है कि आउटपुट को जेवीएम पर चलने वाले कोड में परिणाम होना चाहिए। उदाहरण के लिए आप जावा में सी, बेसिक, पास्कल कंपाइलर्स या यहां तक कि असेंबलर भी लिख सकते हैं। इस मामले में आपको कंपाइलर या असेंबलर बनाने के लिए JVM की आवश्यकता होगी, लेकिन एक बार बनाया गया है, तो प्रारंभिक कोड के परिणामस्वरूप मूल कोड में आपको JVM की आवश्यकता नहीं हो सकती है। एक और तरीका एक अनुवादक लिखना है जो इनपुट भाषा लेता है और इसे मूल मशीन भाषा में परिवर्तित करता है ताकि आप अपना प्रोग्राम भाषा ए में लिख सकें जो भाषा बी में संकलित होता है जिसे बाद में मशीन कोड में संकलित किया जाता है। माइक्रो नियंत्रक दुनिया में आप इसे बहुत देखते हैं। कोई मूल या जावा में प्रोग्राम लिखना चाहता है ताकि वे मौजूदा सी कंपाइलर के लिए सी कोड बनाने के लिए मूल/जावा कंपाइलर लिख सकें। फिर परिणामी सी कोड मूल भाषा/जावा संकलक प्रदान करने वाली मशीन भाषा में संकलित किया जाता है। यह दृष्टिकोण आमतौर पर मशीन कोड में बेसिक/जावा कंपाइलर लिखने से आसान होता है।
कई साल पहले मैंने बेसिक ए और जीडब्ल्यूबीसिक कार्यक्रमों को लिखा था जो असेंबली कोड 6800 और जेड 80 माइक्रोसॉफ्ट का उत्पादन करते थे। मेरा मुद्दा यह है कि आउटपुट इनपुट या लक्ष्य के समान ही नहीं होना चाहिए। अर्थात। सिर्फ इसलिए कि आप जावा में एक जेवीएम लिख रहे हैं इसका मतलब यह नहीं है कि अंतिम परिणाम जावा जेवीएम के तहत खेला जाना चाहिए।
सी ++ में लिखे गए बजेर्न स्ट्राउस्ट्रुप द्वारा पहला सी ++ कंपाइलर नहीं था (जब इसे अभी भी "कक्षाओं के साथ सी" कहा जाता था)? जिसे मैं और अधिक प्रभावशाली मानता हूं, क्योंकि सी ++ एक व्याख्या की गई भाषा नहीं है लेकिन एक कंपाइलर की आवश्यकता है! – Matthias
जो मुझे समझ में नहीं आता है :) – kji
द न्यू ड्रैगन बुक, फर्स्ट एडिशन (त्रुटि-दूसरे संस्करण से दूर रहें) संकलक बूटस्ट्रैपिंग बताते हैं। –