दिलचस्प पोस्ट
सी #: चलाने की प्रक्रिया का पूरा रास्ता कैसे प्राप्त करें? स्थानीय स्टोरेज में मैं एक सरणी कैसे संग्रहीत करूं? जावास्क्रिप्ट में एक विशिष्ट ऑब्जेक्ट प्रोटोटाइप में JSON स्ट्रिंग को पार्स करें किसी रिश्तेदार पथ से एक मॉड्यूल आयात करें मैं एक निचले-दाएँ डिवा के आसपास पाठ कैसे लपेट सकता हूँ? विभिन्न RxJS विषयों के शब्दों क्या हैं? डेटाबेस सामान्य रूप क्या हैं, आप उन्हें आसानी से कैसे लागू कर सकते हैं और आप उदाहरण दे सकते हैं? कमांड लाइन पर सीएसवी में XLS कन्वर्ट करें जीडीबी के साथ प्रोग्राम के मुख्य डंप फ़ाइल का विश्लेषण कैसे करें? <Div> भरण <td> ऊंचाई कैसे करें मैं एक क्रम में रन कैसे गिन सकता हूँ? जावास्क्रिप्ट में स्ट्रिंग समानता की जाँच करने का सही तरीका क्या है? सी # का उपयोग कर वैश्विक हॉटकीज़ सेट करें जीआईटी रिपॉजिटरी से एक निर्देशिका को कैसे निकालना है? मैं जावा में मानव-पठनीय नामों में कैमल सीज़ को कैसे बदलूं?

Javac और ग्रहण संकलक के बीच क्या अंतर है?

क्या एक्लिप्स के जावा कम्पाइलर एक ही कोर के आस-पास एक आवरण है कि javac प्रोग्राम को चारों ओर लपेटा गया है, या यह पूरी तरह एक अलग संकलक है? यदि उत्तरार्द्ध, वे पहिया को फिर से क्यों बदलेंगे?

वेब के समाधान से एकत्रित समाधान "Javac और ग्रहण संकलक के बीच क्या अंतर है?"

ग्रहण ने अपने स्वयं के कंपाइलर को कार्यान्वित किया है जिसे जावा (ईसीजे) के लिए एक्लिप्स कंपाइलर कहा जाता है।

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

एक और अंतर यह है कि एक्लिपस कंपाइलर एक्लिप्स आईडीई के भीतर से वृद्धिशील निर्माण की अनुमति देता है, अर्थात, आप टाइपिंग खत्म करते ही सभी कोड संकलित हो जाते हैं।

तथ्य यह है कि ग्रहण अपने स्वयं के कंपाइलर के साथ आता है क्योंकि आप जावा एसडीके स्थापित किए बिना एक्लिप्स में जावा कोड लिख सकते हैं, संकलन कर सकते हैं और चला सकते हैं।

कुछ उदाहरण जहां ईसीजे को जवाक के ऊपर पसंद किया गया है:

  • अपाचे टॉमकेट जेएसपी को संकलित करने के लिए ईसीजे का उपयोग करता है,
  • IntelliJ IDEA ECJ के लिए समर्थन है, जावा (जीसीजे) 4.3 के लिए जीएनयू कंपाइलर के रूप में,
  • जीसीजे ईसीजे के साथ एकीकृत करता है,
  • Liferay ECJ के साथ बनाता है

सभी ने पहले ही समझाया है कि वे अलग हैं। यहां मैंने दो कंपाइलर के बीच के व्यवहारों में कुछ अंतर देखा है। वे सभी (कम से कम) कार्यान्वयन में से एक बग में उबालें।

संकलित समय अनुकूलन संबंधित

  • ग्रहण बग? केवल डिफ़ॉल्ट केस के साथ एक अशक्त पर स्विच करना

जेनेरिक प्रकार अवरोध संबंधित

  • जेनेरिक्स एक्लिप्से में संकलित और चलाता है, लेकिन जवाक में संकलन नहीं करता
  • कम्पाइलर एक सामान्य पद्धति के एक अशक्त पैरामीटर के साथ अलग तरीके से व्यवहार करते हैं

ग्रहण के अंतर्निर्मित संकलक आईबीएम के जैक्स जावा कंपाइलर पर आधारित है। (ध्यान दें कि ईक्लिप्स ने आईबीएम में भी अपना जीवन शुरू किया)। यह जेडीके में सन के जावा कम्पाइलर से पूरी तरह से स्वतंत्र है; यह सूर्य के javac आसपास एक आवरण नहीं है

जैक्स एक लंबे समय के लिए अस्तित्व में है, यह मानक JDK जावा कंपाइलर (लेकिन मुझे नहीं पता कि यह अभी भी सच है) की तुलना में बहुत तेजी से हुआ करता था। जैसा कि क्यों आईबीएम अपना जावा कम्पाइलर लिखना चाहता था: हो सकता है कि लाइसेंसिंग कारणों के कारण (उनके पास अपना जावा क्रियान्वयन भी हो)

यह पूरी तरह एक अलग संकलक है यह जवैक के रूप में जरूरी है क्योंकि ग्रहण साइट से थोड़ा टूटा हुआ कोड के संकलन की अनुमति नहीं है

एक वृद्धिशील जावा कम्पाइलर एक्लिपस बिल्डर के रूप में लागू, यह जावा कलेप्लर के लिए विज़ुअलएज से विकसित तकनीक पर आधारित है। विशेष रूप से, यह चलाने और डीबग कोड की अनुमति देता है जिसमें अभी भी अनसुलझे त्रुटियां हैं