2012-09-25 21 views
7

मुझे पता है कि जावा कोड बाइट-कोड में संकलित है, जिसे JVM द्वारा निष्पादित किया गया है।क्या सी # कोड देशी बाइनरी में संकलित है?

सी # के साथ क्या मामला है? मैंने देखा है कि सी # में लिखे गए अनुप्रयोगों में .exe एक्सटेंशन है जो सुझाव देगा कि वे मूल मशीन निर्देश हैं। लेकिन क्या सच में ऐसा है ?

+0

पर यहाँ एक गहराई में और अधिक देखने के लिए देखो यह व्याख्या करनी चाहिए। http://en.wikipedia.org/wiki/List_of_CLI_languages ​​ – km1

+0

नाजन के साथ (जैसे जावा के साथ जावा) – Cynede

उत्तर

14

सं

तरह जावा, सी # एक मध्यस्थ भाषा (MSIL या कोल इंडिया कहा जाता है) को संकलित किया गया है।

जावा के विपरीत, आईएलईईईईईईई फाइलों में संग्रहीत है जिसमें एक संवाद बॉक्स दिखाने के लिए पर्याप्त वास्तविक EXE कोड है जो उपयोगकर्ताओं को स्थापित करने के लिए कहता है। नेट।

+1

एमएम। बिट "उल" कहने के लिए उलझन में है "क्या सी # कोड संकलित है"। जाहिर है, यह संकलित है। सीएलआई निर्देशों में। बस मूल कोड में नहीं (सीधे)। जाहिर है, अंत में वे देशी कोड में संकलित _are_ (बस-समय-समय), वैसे भी। – sehe

+0

@sehe: मैं प्रश्न में अंतिम पंक्ति में "नहीं" कह रहा हूं। – SLaks

+0

मैंने वहां विसंगति से बचने के लिए प्रश्न शीर्षक संपादित किया है :) – sehe

2

सी # कोड एमएसआईएल को संकलित किया गया है। यह जावा बाइटकोड पसंद करता है। एमएसआईएल रनटाइम पर मशीन isntrctions में परिवर्तित हो जाएगा।

1. Conversion from C# to CIL by the C# compiler 

2. Conversion from CIL to instructions that the processor can execute. 

एक घटक (बस समय में) पर इस संकलन करता है:

1

सी # कोड MSIL को संकलित किया गया है, MSIL .NET CLR

2

सी # संकलन इन दो चरणों में किया जाता है द्वारा ध्यान रखा जाता है सीआईएल से मशीन कोड

3

क्या है .exe आपको यह बताने वाला है कि फ़ाइल निष्पादन योग्य है। सी # बाइटकोड में संकलित है, जैसे जावा है, लेकिन .NET इसे सीएलआर निष्पादन योग्य में लपेटता है।

CLR निष्पादन http://etutorials.org/Programming/.NET+Framework+Essentials/Chapter+2.+The+Common+Language+Runtime/2.2+CLR+Executables/

+0

पोर्टेबल निष्पादन योग्य शब्द केवल .NET के लिए विशिष्ट नहीं है। – Matthew

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