java जावा कंपाइलर और जेवीएम किस भाषा में लिखे गए हैं?




jvm javac (8)

मान लीजिए कि आप हॉटस्पॉट जेवीएम के बारे में बात कर रहे हैं, जो सूर्य द्वारा प्रदान की गई आईआईआरसी है, यह सी ++ में लिखा गया है। जावा के लिए विभिन्न वर्चुअल मशीनों के बारे में अधिक जानकारी के लिए, आप इस link देख सकते हैं। जावा , अधिकांश जावा कंपाइलर्स की तरह, जावा में लिखा गया है।

जावा कंपाइलर ( javac ), कौन सी भाषाएं वर्चुअल मशीन (जेवीएम) और java स्टार्टर लिखी गई हैं?


जैक्स आरवीएम , शोध उद्देश्यों के लिए व्यापक रूप से उपयोग किए जाने वाले स्वयं-होस्टिंग जेवीएम जावा में लिखे गए हैं। यह एक व्यक्ति नहीं है जो अपने डेस्कटॉप पर चलता है, लेकिन यह मेरी सूची पर है "अब चलो भाषा की सामान्य शक्ति दिखाएं।"


प्रश्न का सटीक वाक्यांश थोड़ा भ्रामक है: यह "जेवीएम" या "कंपाइलर" नहीं है क्योंकि कई जेवीएम विक्रेता हैं (जेरोकिट एक है, आईबीएम दूसरा है) और वहां कई कंपाइलर्स हैं।

  • सूर्य जेवीएम C में लिखा गया C , हालांकि इस मामले की आवश्यकता नहीं है - जेवीएम आपके मशीन पर चलने वाला एक मंच-निर्भर निष्पादन योग्य है और इसलिए मूल रूप से किसी भी भाषा में लिखा जा सकता था। उदाहरण के लिए, मूल आईबीएम जेवीएम स्मॉलटाक में लिखा गया था

  • जावा लाइब्रेरीज़ ( java.lang , java.util आदि, जिन्हें अक्सर जावा एपीआई कहा जाता है) स्वयं जावा में लिखे जाते हैं, हालांकि native के रूप में चिह्नित विधियों को C या C++ में लिखा गया होगा।

  • मेरा मानना ​​है कि सूर्य द्वारा प्रदान किया गया जावा कंपाइलर जावा में भी लिखा गया है। (फिर भी, वहां कई कंपाइलर हैं)


असल में ओरेकल जेवीएम सी ++ में लिखा गया है, सी नहीं।

हॉटस्पॉट जेवीएम कोड पर एक नज़र डालें: http://openjdk.java.net/groups/hotspot/


सिद्धांत रूप में लगभग कुछ भी, आमतौर पर सी


पहला जावा कंपाइलर सूर्य माइक्रोसिस्टम्स द्वारा विकसित किया गया था और सी ++ से कुछ पुस्तकालयों का उपयोग करके सी में लिखा गया था। आज, जावा कंपाइलर जावा में लिखा गया है, जबकि जेआरई सी में लिखा गया है।

हम कल्पना कर सकते हैं कि Java में जावा कंपाइलर कैसे लिखा गया था:

जावा कंपाइलर जावा प्रोग्राम के रूप में लिखा गया है और उसके बाद सी (पहले जावा कंपाइलर) में लिखे गए जावा कंपाइलर के साथ संकलित किया गया है। इस प्रकार हम जावा प्रोग्राम संकलित करने के लिए नए संकलित जावा कंपाइलर (जावा में लिखे गए) का उपयोग कर सकते हैं।


इस लिंक को आपके प्रश्न का उत्तर देना चाहिए

ऐसा लगता है कि संकलक अब जावा में लिखा गया है, लेकिन रनटाइम एएनएसआई सी में लिखा गया है


अधिकांश ओएस, जेवीएम आईएसओ सी ++ में लिखे गए हैं। मुझे संदेह है कि एएनएसआई सी का उपयोग किया जाता है, एक पूरी तरह से अलग भाषा जो आजकल काफी पुरातन है।





javac