Googling और अनुसंधान के एक बहुत बाद, मुझे पता चला है कि compilers के अपने बुनियादी समझ गलत था।
एक संकलक एक प्रोग्राम है जो भाषा वाई में भाषा एक्स एक कार्यक्रम में एक कार्यक्रम परिवर्तित करता है। भाषा वाई कुछ भी (देशी मशीन कोड, मध्यवर्ती कोड/बाईटकोड, कुछ अन्य भाषा जेड, या खुद को एक ही भाषा) हो सकता है।
एक संकलक जरूरी एक प्रोग्राम है जो एम-कोड के लिए भाषा एक्स में एक कार्यक्रम धर्मान्तरित नहीं है।
उदाहरण के लिए, एक संकलन उच्च संकलन सी # कोड से सीआईएल को एक कंपाइलर csc.exe का उपयोग करके होता है। (मुझे लगता है कि कैसे याद कर सकता है? ओह!)
इसके अलावा, समय आगे-के समय और बस-इन-टाइम compilers क्रम को संदर्भित करता है में। तो, आगे के समय संकलक में, प्रोग्राम चलाने से पहले संकलन होता है, आमतौर पर एक बिल्ड चरण के रूप में जोड़ा जाता है। जबकि जस्ट-इन-टाइम कंपाइलर में, प्रोग्राम चल रहा है, जबकि संकलन हो रहा है।
सी # नेट परिप्रेक्ष्य में कहें और मेरे सवाल का जवाब करने के लिए, कोल इंडिया द्वारा MSBuildCsc.exe उपयोग कर किसी भी विचार CLR JIT या AOT संकलक का उपयोग करता है कि क्या बिना उत्पन्न होता है। यह कार्यक्रम चलाने के समय है कि जेआईटी या एओटी कंपाइलर कार्रवाई में आता है। AOT संकलक देशी मशीन कोड (भाषा वाई) से पहले कार्यक्रम चलाया जाता है में पूरे विधानसभाओं (सीआईएल में , या भाषा एक्स) संकलित करता है। JIT कम्पाइलर देशी मशीन कोड (भाषा वाई) जब पद्धतियों को बुलाया जाता में अलग-अलग तरीकों और वर्गों (सीआईएल में , या भाषा एक्स) संकलित करता है।
CLR डिफ़ॉल्ट रूप से JIT कम्पाइलर प्रदान करता है लेकिन यह भी Native Image Generator(Ngen.exe) का उपयोग कर AOT संकलन का समर्थन करता है।
"बिल्डिंग" तब होता है जब एओटी संकलन सी, सी ++ ऐप्स की तरह होता है, सी # कोड को "बिल्डिंग" के दौरान निर्दिष्ट विशिष्ट प्लेटफ़ॉर्म के लिए सीधे मशीन कोड पर संकलित किया जाएगा। – shashi
ठीक है, मंच/ढांचा महत्वपूर्ण है। सामान्य उपयोगकर्ता प्रोग्राम चलाने से कुछ सप्ताह पहले .NET में एकमात्र पूर्ण शुद्ध एओटी होता है। रेडमंड में एक स्टोर सर्वर पर, .NET मूल का उपयोग कर। वेब ऐप के साथ कुछ भी करने के लिए नहीं है, आप केवल Ngen का उपयोग कर सकते हैं। प्रतिबिंब कोड और कुछ जेनेरिक अभी भी जब्त कर रहे हैं। –