के बीच क्या अंतर है मुझे थोड़ा उलझन में लग रहा है, क्या कोई वर्णन करने में मदद कर सकता है जावास्क्रिप्ट इंजन और जावास्क्रिप्ट रनटाइम पर्यावरण के बीच क्या अंतर है। बीटीडब्ल्यू, इवेंट लूप इंजन या रनटाइम में लागू किया गया था?जावास्क्रिप्ट इंजन और जावास्क्रिप्ट रनटाइम पर्यावरण
उत्तर
सी और अन्य संकलित भाषाओं के विपरीत, जावास्क्रिप्ट एक कंटेनर में चलता है - एक प्रोग्राम जो आपके जेएस कोड पढ़ता है और उन्हें चलाता है। इस कार्यक्रम runnable आदेशों को दो बातें
- अपने कोड को पार्स करने और परिवर्तित करना चाहिए
- इतना है कि यह बाहरी दुनिया के साथ बातचीत कर सकते हैं जावास्क्रिप्ट को कुछ वस्तुओं प्रदान करते हैं।
पहला भाग इंजन कहा जाता है और दूसरा रनटाइम है।
उदाहरण के लिए, Chrome ब्राउज़र Node.js एक ही इंजन का उपयोग करें - वी 8, लेकिन उनके Runtimes अलग हैं: क्रोम में आप जबकि नोड आप require
, बफ़र और प्रक्रियाओं देता है, window
, डोम वस्तुओं आदि की है।
आइए पहली बार जावास्क्रिप्ट के आगे संकलित कार्यान्वयन की कल्पना करें।
कंपाइलर जावास्क्रिप्ट कोड का अनुवाद करेगा, उदाहरण के लिए, मूल x86 मशीन कोड जिसे आप चला सकते हैं। हालांकि, जावास्क्रिप्ट में कुछ चीजें हैं जो रनटाइम पर होती हैं, और इस प्रकार सांख्यिकीय रूप से संकलित नहीं की जा सकती हैं। कचरा संग्रह, उदाहरण के लिए, या प्रतिबिंब। इसलिए, कार्यक्रम चलाने के लिए, कचरा कलेक्टर और प्रतिबिंब प्रणाली जैसे रनटाइम पर किसी प्रकार की सहायक सेवाएं होने की आवश्यकता है। इसके अलावा, जावास्क्रिप्ट में eval
है, जिसका अर्थ है कि (हमारे hypothetical संकलित कार्यान्वयन में) संकलक स्वयं या कुछ अन्य दुभाषिया रनटाइम पर उपलब्ध होना चाहिए।
चलो इन चीजों को रनटाइम सपोर्ट सर्विसेज पर कॉल करें।
एक दूसरी बात यह है कि कार्यक्रम के लिए उपलब्ध होने की जरूरत है, वस्तुओं रहे हैं इस तरह के Array
, Function
, Object
, आदि और कार्यों जैसे forEach
के रूप में। ऑब्जेक्ट्स और फ़ंक्शंस का संग्रह जो प्रोग्राम को गेट-गो से उपलब्ध होने की आवश्यकता है, को आमतौर पर कोर लाइब्रेरी या बेस लाइब्रेरी कहा जाता है। जावास्क्रिप्ट जैसी भाषा के लिए, जिसे एम्बेडेड करने के लिए डिज़ाइन किया गया है, संदर्भ के आधार पर अतिरिक्त पुस्तकालय भी मौजूद हैं। उदाहरण के लिए, ब्राउज़र में एम्बेडेड जावास्क्रिप्ट के लिए, हम उम्मीद करते हैं कि डीओएम ऑब्जेक्ट्स और फ़ंक्शंस और वैश्विक window
और document
ऑब्जेक्ट्स और अन्य मौजूद हैं। इन्हें कोर लाइब्रेरी का भी हिस्सा माना जा सकता है।
और आखिरकार, आइए अब हमारे काल्पनिक कंपाइलर को भूल जाएं और एक दुभाषिया (या जेआईटी कंपाइलर या मिश्रित मोड इंजन या बाइटकोड वीएम) देखें। यहां, इंटरप्रेटर (या जेआईटी, या जो कुछ भी) पहेली का तीसरा टुकड़ा है। यह बात है कि वास्तव में जावास्क्रिप्ट प्रोग्राम निष्पादित करता है। (ठीक है, तकनीकी तौर पर, एक JIT पर अमल नहीं करता है, यह संकलित, और फिर कुछ और निष्पादित करता है।)
शब्दावली 100% स्पष्ट नहीं है: कभी कभी, केवल रनटाइम सहायता सेवा के रूप में रनटाइम वातावरण में भेजा जाता है, कभी-कभी, कोर लाइब्रेरी भी शामिल है।
निष्पादन इंजन या तो केवल दुभाषिया (जेआईटी, वीएम, ...) या दुभाषिया और रनटाइम पर्यावरण का संयोजन है। एक कंपाइलर को निष्पादन इंजन कभी नहीं कहा जाता है (यह किसी भी निष्पादन को निष्पादित नहीं करता है, बस किसी अन्य भाषा में अनुवाद करता है), और निष्पादन इंजन शब्द का उपयोग शायद ही कभी स्थिर रूप से संकलित कार्यान्वयन के संदर्भ में किया जाता है।
इवेंट लूप होस्ट वातावरण का हिस्सा है, जावास्क्रिप्ट कार्यान्वयन नहीं।
आपके धैर्यपूर्वक उत्तर के लिए धन्यवाद। – clark
कल्पना कीजिए एक रोबोट एक संगीत खेल रहा है:
- जावा स्क्रिप्ट कोड रोबोट के लिए संगीत नोट्स होगा।
- जावास्क्रिप्ट इंजन रोबोट होगा जो नोट्स को समझ सकता है और उस पर कार्य कर सकता है।
- जावास्क्रिप्ट रनटाइम वह उपकरण होगा जो संगीत चलाने के लिए रोबोट का उपयोग कर सकता है।
कल्पना कीजिए एक रोबोट एक आग बाहर डाल रहा है:
- जावा स्क्रिप्ट कोड रोबोट के लिए निर्देशों का एक आग बुझाने के लिए किया जाएगा।
- जावास्क्रिप्ट इंजन रोबोट होगा जो निर्देशों को समझ सकता है और उस पर कार्य कर सकता है।
- जावास्क्रिप्ट रनटाइम आग ट्रक, और पानी की बंदूक होगी।
- 1. क्या कोई जावास्क्रिप्ट इंजन (रनटाइम) है जो टाइम्स इंटरफ़ेस
- 2. जावास्क्रिप्ट पर्यावरण चर
- 3. जावास्क्रिप्ट रनटाइम क्या है ..?
- 4. जावास्क्रिप्ट - टेम्पलेट इंजन
- 5. जावास्क्रिप्ट इंजन लाभ
- 6. जावास्क्रिप्ट ग्राफ लेआउट इंजन
- 7. सरल जावास्क्रिप्ट भौतिकी इंजन
- 8. Jquery और जावास्क्रिप्ट के लिए विकास पर्यावरण
- 9. रनटाइम पर जावास्क्रिप्ट लोड और अनलोड करें
- 10. लेआउट इंजन और जावास्क्रिप्ट इंजन के बीच अंतर
- 11. जावास्क्रिप्ट रनटाइम त्रुटि: '$' अपरिभाषित है
- 12. "रनटाइम पर्यावरण" और "सॉफ्टवेयर ढांचे" का अर्थ?
- 13. आयरनपीथन ने रनटाइम इंजन
- 14. गेम इंजन रनटाइम डिकंप्रेशन
- 15. रेल 3.2 देव पर्यावरण स्रोत जावास्क्रिप्ट
- 16. javax.scripting जावास्क्रिप्ट पर्यावरण में मानचित्र आयात करना
- 17. जावास्क्रिप्ट
- 18. जावा और जावास्क्रिप्ट
- 19. क्लाइंट-साइड जावास्क्रिप्ट ब्लॉग इंजन/स्क्रिप्ट
- 20. जीनोम 3 (जीनोम शैल) जावास्क्रिप्ट/सीएसएस इंजन
- 21. Google ऐप इंजन पर सर्वर साइड जावास्क्रिप्ट
- 22. jQuery सत्यापन इंजन कस्टम जावास्क्रिप्ट सत्यापन
- 23. जावास्क्रिप्ट टेम्पलेट इंजन का उपयोग कब करें?
- 24. रेल जावास्क्रिप्ट रनटाइम पर्यावरण पर रूबी स्थापित करने में मदद की ज़रूरत है
- 25. जावास्क्रिप्ट
- 26. .NET/C# के लिए कोई जावास्क्रिप्ट इंजन?
- 27. जावास्क्रिप्ट दुभाषिया/इंजन कैसे काम करते हैं?
- 28. राइनो और स्पाइडरमॉन्की जावास्क्रिप्ट इंजन के बीच क्या अंतर है?
- 29. पहचानें कि क्या ऐप इंजन रनटाइम (जावा)
- 30. जावास्क्रिप्ट
आपके उत्तर के लिए बहुत बहुत धन्यवाद, यह संक्षिप्त और समझदार है। – clark
@georg आप कुछ लिंक प्रदान कर सकते हैं, ताकि मुझे इसके बारे में बेहतर जानकारी मिल सके। – refactor
यह अच्छा और सरल है, लेकिन कंपाइलर और इंजन के बीच क्या अंतर है? –