जावा कंपाइलर ( javac
), वर्चुअल मशीन (JVM) और java
स्टार्टर किस भाषा में लिखे गए हैं?
जावा कंपाइलर ( javac
), वर्चुअल मशीन (JVM) और java
स्टार्टर किस भाषा में लिखे गए हैं?
जवाबों:
प्रश्न का सटीक विवरण थोड़ा भ्रामक है: यह "JVM" या "संकलक" नहीं है क्योंकि वहाँ कई JVM विक्रेता हैं (jrockit एक है, IBM दूसरा) और कई संकलक वहाँ हैं।
सन जेवीएम में लिखा गया है C
, हालांकि यह मामला होने की जरूरत नहीं है - जेवीएम जैसा कि आपकी मशीन पर चलता है, एक प्लेटफॉर्म पर निर्भर निष्पादन योग्य है और इसलिए मूल रूप से किसी भी भाषा में लिखा जा सकता है। उदाहरण के लिए, मूल आईबीएम जेवीएम को स्मालटाक में लिखा गया था
जावा पुस्तकालयों ( java.lang
, java.util
आदि, जिसे अक्सर जावा एपीआई के रूप में जाना जाता है ) को स्वयं जावा में लिखा जाता है, हालांकि native
जिन तरीकों को चिह्नित किया गया है वे C
या में लिखे गए होंगे C++
।
मेरा मानना है कि सन द्वारा प्रदान किया गया जावा संकलक भी जावा में लिखा गया है। (हालांकि फिर से, वहाँ कई संकलक हैं)
बहुत पहले जावा कंपाइलर को सन माइक्रोसिस्टम्स द्वारा विकसित किया गया था और सी में सी + + से कुछ पुस्तकालयों का उपयोग करके लिखा गया था। आज जावा में जावा कंपाइलर लिखा जाता है, जबकि JRE को C में लिखा जाता है।
हम कल्पना कर सकते हैं कि जावा कंपाइलर को जावा में इस तरह कैसे लिखा गया था:
जावा कंपाइलर को जावा प्रोग्राम के रूप में लिखा जाता है और फिर सी (पहले जावा कंपाइलर) में लिखे जावा कंपाइलर के साथ संकलित किया जाता है। इस प्रकार हम जावा प्रोग्राम को संकलित करने के लिए नए संकलित जावा कंपाइलर (जावा में लिखे गए) का उपयोग कर सकते हैं।
से जावा डॉक्स
संकलक जावा में लिखा गया है और रनटाइम ANSI C में लिखा गया है
दरअसल Oracle JVM C ++ में लिखा गया है, C में नहीं।
HotSpot JVM कोड को यहां देखें : http://openjdk.java.net/groups/hotspot/
Jikes RVM , एक स्वयं की मेजबानी JVM अनुसंधान प्रयोजनों के जावा में लिखा है के लिए बड़े पैमाने पर इस्तेमाल। यह उन लोगों के लिए नहीं है जो अपने डेस्कटॉप पर चलते हैं, लेकिन यह "मेरी भाषा की सामान्यता को दिखाते हैं" की सूची में है।
मान लें कि आप हॉटस्पॉट JVM के बारे में बात कर रहे हैं, जो कि सूर्य द्वारा प्रदान किया गया है, यह C ++ में लिखा गया है। जावा के लिए विभिन्न आभासी मशीनों के बारे में अधिक जानकारी के लिए, आप इस लिंक को देख सकते हैं । जावा में सबसे जावा कंपाइलर की तरह javac लिखा हुआ है।
(अधिक जानकारी के लिए आप इस लिंक को देख सकते हैं: https://docs.oracle.com/javase/specs/jvms/se7/html/ )