पहला .NET कोड MSIL को संकलित करता है और फिर जेआईटी इसे मशीन आश्रित कोड में परिवर्तित करता है। क्या कोई मुझे बता सकता है कि 2 लाभ संकलन के कारण सभी लाभकारी क्या हैं। धन्यवादक्यों .NET कोड MSIL को संकलित करता है?
उत्तर
कुछ कारण हैं। सबसे पहले और सबसे महत्वपूर्ण यह संभवतः पार मंच बनाने के लिए है। यदि सी # या अन्य .NET भाषाओं को मूल कोड में सीधे संकलित किया जाता है, तो उन्हें चलाने वाले प्रत्येक प्लेटफ़ॉर्म के लिए उन्हें पुन: संकलित करना होगा। एक वीएम के साथ, सभी कोड एक मध्यवर्ती प्रारूप में रखा जा सकता है, और आपको केवल प्रत्येक मंच के लिए एक वीएम कार्यान्वयन लिखना होगा।
इसके अलावा, एक भाषा-अज्ञेय मध्यस्थ भाषा होने के साथ, आप कई भाषाओं में लिखी गई सभी संदर्भित असेंबली असेंबली कई उच्च स्तरीय भाषाओं (सी #, वीबी.नेट, पायथन आदि) प्राप्त कर सकते हैं। चूंकि वे सभी एक ही चीज़ में संकलित होते हैं, इसलिए वे एक-दूसरे के साथ सहजता से काम कर सकते हैं।
प्रदर्शन लाभ भी हैं। जेआईटी कंपाइलर विशेष रूप से उस मशीन के लिए आक्रामक अनुकूलन कर सकता है जिस पर कोड उस समय चल रहा है। मुझे नहीं पता कि .NET JIT कंपाइलर इस अर्थ में कितना अनुकूलन करता है, लेकिन बहुत बड़े सैद्धांतिक लाभ हो सकते हैं।
क्रॉस-प्लेटफ़ॉर्म वास्तव में .NET ढांचे पर बहुत अधिक लागू नहीं होता है क्योंकि यह केवल विंडोज़ पर चलने के लिए था, लेकिन अभी भी एक वैध बिंदु है। +1 –
वास्तव में? फिर मोनो समझाओ। :) –
@ मैट क्या आप कृपया समझ सकते हैं कि मैं अलग-अलग मंच पर अपना .NET कोड चलाने के लिए कैसे संभव बना सकता हूं? मतलब है कि मैं अपने .net एप्लिकेशन को लिनक्स पर चलाने के लिए चाहता हूं? क्या यह संभव है? – Siddiqui
जवाब MSDN
एक निष्पादन मंच के लिए बाध्य नहीं है पर पाया जा सकता। उदाहरण के लिए एक्सएनए पीपीसी (एक्सबॉक्स 360) और x86 प्रोसेसर दोनों को लक्षित करता है। कुछ कार्यक्रम लिनक्स या ओएसएक्स पर मोनो पर चलेंगे।
यह आप बेहतर लक्ष्य मशीन के लिए अनुकूलित या लापता कार्यों को बदलने के लिए अनुमति देता है:
- उदाहरण के लिए OSX> = OpenCL साथ रनटाइम पर GPU निर्देश लापता में 10.5 संकलित करता है।
- आइए कहें कि आप एक सीपीयू पर फ्लोटिंग पॉइंट सपोर्ट के बिना काम कर रहे हैं, तो आप पूर्ण कोड पुनर्लेखन की आवश्यकता के बिना इसे JIT के साथ अनुकरण कर सकते हैं।
- भविष्य में किसी बिंदु पर GPU या अन्य लक्ष्यों को गतिशील रूप से प्रसंस्करण करना संभव हो सकता है (मुझे संदेह है कि कार्यात्मक भाषाएं इसके लिए कुछ बेहतर अनुकूल हैं)।
आप कार्यात्मक भाषा सम्मिलन के बारे में सही हैं। * निश्चित * स्थितियों के लिए जीपीयू वास्तव में शक्तिशाली हैं। कार्यात्मक भाषाएं बुनियादी ढांचे के लिए यह तय करती हैं कि ये स्थितियां कब आती हैं। –
मुझे लगता है कि भविष्य दोनों एफपी + बड़े पैमाने पर थ्रेड समांतर कोड (जीपीजीपीयू) का मिश्रण होगा। – Stringer
मशीन स्तर से उच्च स्तर की भाषा पहले रूपांतरण और फिर, यह कैसे नेट मंच बनाया गया है। पहली परत एमएसआईएल को हाई लेवल भाषा का ख्याल रखती है और दूसरा स्तर एमएसआईएल से मशीन स्तर कोड में कनवर्ट करने के लिए प्लेटफार्म की गड़बड़ी & पर केंद्रित हो सकता है। यह मुख्य रूप से भाषा अंतःक्रियाशीलता का समर्थन करता है और निकट भविष्य में हो सकता है कि यह क्रॉस प्लेटफॉर्म समर्थन भी प्रदान करेगा जब मोनो जैसी परियोजना अधिक जमीन प्राप्त करेगी।
- 1. यह हास्केल कोड क्यों संकलित करता है?
- 2. यह सी कोड संकलित क्यों करता है?
- 3. यह कोड स्निपेट संकलित क्यों करता है?
- 4. क्यों --list.end() संकलित करता है?
- 5. यह संकलित क्यों करता है?
- 6. .NET 4 में .NET कोड संकलित करना?
- 7. यह सी ++ टेम्पलेट कोड संकलित क्यों नहीं करता है?
- 8. निम्न कोड MSVC++ के साथ संकलित क्यों करता है?
- 9. फ़ीचर या बग: यह जावा कोड संकलित क्यों करता है?
- 10. यह सी # कोड संकलित क्यों नहीं करता है?
- 11. यह कोड वीएस -2010 में .NET 4.0 के साथ क्यों संकलित नहीं करता है?
- 12. यह विचार पर संकलित क्यों करता है?
- 13. एफ # MSIL कहानियो
- 14. यह reinterpret_cast संकलित क्यों नहीं करता है?
- 15. ग्रहण क्यों संकलित करता है, लेकिन जावैक नहीं करता है?
- 16. कोई पैरामीटर संकलित करने वाला प्रतिनिधि क्यों संकलित करता है?
- 17. "ईएलएसई:" vb.net में संकलित क्यों करता है?
- 18. एरलांग क्यों करता है: foo() संकलित करें?
- 19. नेट कोड में संकलित करता है .NET पूरी तरह से एमएसआईएल को हटा दें?
- 20. क्या सी ++ कोड असेंबली कोडों को संकलित करता है?
- 21. .NET पर्यावरण में वीबी 6 कोड संकलित
- 22. MSIL प्रश्न (बेसिक)
- 23. क्यों पाइथन स्रोत से पहले बाइटकोड को संकलित करता है?
- 24. वैकल्पिक तर्क कोड .NET 3.5 में संकलित करता है। क्यूं कर?
- 25. "लूप:"। यह क्या है, यह संकलित क्यों करता है?
- 26. .NET JIT- संकलित कोड कैश किया गया है?
- 27. सभी कोड संकलित स्थिति स्वतंत्र क्यों नहीं है?
- 28. एक स्काला साथी ऑब्जेक्ट दो वर्गों (जावा और .NET कंपेलरों दोनों) में संकलित क्यों है?
- 29. मेरे जावा कोड में एक स्पष्ट त्रुटि है। यह संकलित और दौड़ क्यों करता है?
- 30. एक डीबगर संलग्न होने पर फ्लाई पर संकलित सी # कोड क्यों काम नहीं करता है?
ठीक है, जावा ने उस साल पहले किया था .NET का जन्म हुआ था। तो मुझे लगता है कि .NET ने उस विचार की प्रतिलिपि बनाई है। :) –
खैर, यूसीएसडी पास्कल ने 1 9 70 के दशक में और जावा (और कई अन्य) में "प्रतिलिपि बनाई"। आ जाओ! :-) – CesarGon