2009-08-03 16 views
164

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

+21

मैं जावा पर काम करता हूं इसलिए मैं भाषा के बारे में जानना चाहता हूं ... :) –

+0

हाँ, लेकिन मैं जावा कंपाइलर्स या दुभाषियों को लिखने में शामिल नहीं हूं (न ही राहुल या वह संभवतः सवाल नहीं पूछेंगे) । मैं जावा कोड लिखता हूं और यह जानना उपयोगी होता है कि इसमें कितने विशिष्ट बिट्स (कक्षाओं का चयन करने के लिए) प्रदर्शन करते हैं, लेकिन यह सी, बीसीपीएल या कोबोल में लिखा गया है, मुझे वास्तव में परवाह नहीं है। – paxdiablo

+24

यह आपका परिप्रेक्ष्य है। मान लें कि आपने 20 वर्षों तक कुछ तकनीक पर काम किया है और साक्षात्कारकर्ता आपको पूछता है कि यह कौन सी भाषा लिखी गई है या यह कैसे काम करती है, तो आप कह सकते हैं कि आपको परवाह नहीं है इसका मतलब है कि आप सिर्फ भाषा में और नहीं लिखना चाहते हैं वास्तव में भाषा को समझना चाहते हैं। –

उत्तर

140

सवाल का सटीक शब्दों में थोड़ा भ्रामक है: यह "JVM" या "संकलक" नहीं है के रूप में वहाँ कई JVM विक्रेताओं (jrockit एक, आईबीएम एक और है) और कई compilers हैं वहां। JVM के रूप में यह आपकी मशीन पर चलाता है एक मंच पर निर्भर निष्पादन और इसलिए मूल रूप से लिखा गया हो सकता -

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

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

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

+0

मुझे लगता है कि उसका मतलब है "जावा" प्रोग्राम जिसे आप JVM प्रारंभ करने के लिए उपयोग करते हैं। –

+1

दरअसल, * सूर्य की जेआरई में * एक * पुस्तकालय NetRexx में लिखा गया है। (यह मनमाना सटीक गणित पुस्तकालयों में से एक है, या तो बिगइंटर, बिग्नम या बिगडेसिमल। मैं कौन भूल गया।) सिद्धांत रूप में, आप जेआरई को लागू करने के लिए किसी भी भाषा का उपयोग कर सकते हैं, जब तक कि यह एक प्रतिनिधित्व के लिए संकलित हो सके कि जावा प्रोग्राम कर सकता है समझना। –

+18

कृपया सी –

7

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

53

से Java Docs

संकलक जावा में लिखा जाता है और क्रम एएनएसआई सी

+1

सन माइक्रोसिस्टम्स द्वारा विकसित बहुत पहले जावा कंपाइलर सी ++ http://en.wikipedia.org/wiki/Java_compiler –

+3

से कुछ पुस्तकालयों का उपयोग करके सी में लिखा गया था। यह वास्तव में एक पुराना दस्तावेज़ है (> चीजों के रूप में 10 साल)। उदाहरण के लिए, यह कहता है * "जावा बाइटकोड का उपयोग मक्खी पर देशी मशीन निर्देशों (व्याख्या) के लिए किया जाता है और कहीं भी संग्रहीत नहीं किया जाता है" * जो लगभग 5 वर्षों तक सच नहीं हुआ है! –

+2

ठीक है, जब से दस्तावेज वास्तव में अद्यतित थे, खासकर बड़े बदलावों के बाद? :) – Esko

8

This link में लिखा है आपके प्रश्न का उत्तर चाहिए

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

3

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

+0

यह कछुए * सभी तरह से नीचे * है? क्या इसमें कुछ प्रकार का माइक्रोक्रोनल है? यदि हां, तो कौन सी भाषा लिखी गई है? – Raedwald

2

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

-2

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

+20

आपको मजाक करनी होगी। लिनक्स के अधिकांश संस्करण सी में लिखे गए हैं। विंडोज़ में बड़ी मात्रा में विंडोज़ लिखा गया है, जैसा कि कई एम्बेडेड ओएस हैं।अधिकांश ओएस लेखक सी ++ जैसी भाषाओं से दूर रहेंगे, जहां स्रोत कोड में मौजूद कन्स्ट्रक्टर और विनाशक जैसी चीजें स्वचालित रूप से कंपाइलर द्वारा डाली जाती हैं। –

+0

लिनक्स "सी" में लिखा गया है। जब तक "सी" में कभी-कभी jrockit jvm लिखा गया था। केवल हॉटस्पॉट जेवीएम "सी ++" में लिखा गया है। जावा में जावा कंपाइलर कैसे लिखा जा सकता है यह समझाते हुए – techcraver

46

बहुत पहले जावा सन माइक्रोसिस्टम्स द्वारा विकसित किया गया था और C++ से कुछ लाइब्रेरी का उपयोग करके सी में लिखा गया था:

यहाँ हॉटस्पॉट JVM कोड पर एक नजर डालें। आज, जावा, जावा में लिखा है, जबकि JRE सी

में लिखा है

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

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

+19

+1 :) –

संबंधित मुद्दे