2012-09-25 23 views
7

Java kodunun JVM tarafından yürütülen bayt koduna derlendiğini biliyorum.C# kodu yerel ikili dosyalar için derlenmiş mi?

C# ile durum nedir? C# ile yazılan uygulamaların, yerel makine yönergeleri olduğunu düşündüren .exe uzantısına sahip olduğunu fark ettim. Ama gerçekten öyle mi ?

+0

burada daha derinlemesine bir görünüm için

bak. http://en.wikipedia.org/wiki/List_of_CLI_languages ​​ – km1

+0

Ngen ile (jit ile birlikte Java) – Cynede

cevap

14

sayılı

gibi Java, C# (MSIL veya CIL denir) bir ara dile derlenmektedir.

Java aksine, IL .Net yüklemek için kullanıcılar soran bir iletişim kutusu göstermek için yeterli fiili EXE koduna sahip EXE dosyalarında saklanır.

+1

Mm. Sadece "Hayır" için "C# kodu derlenmiş" demek için kafa karıştırıcı. Açıkçası, derlenmiş. CLI talimatlarına. Sadece yerel koda (doğrudan) değil. Açıkçası, sonunda, _are_ (tam zamanında), her zaman yerel kodları derlediler. – sehe

+0

@sehe: Sorunun son satırına "hayır" diyorum. – SLaks

+0

Orada uyumsuzluk önlemek için soru başlığı düzenledim :) – sehe

2

C# kodu MSIL için derlendi. java bayt kodunu sever. msil çalışma zamanında makine isntrctions dönüştürülecek.

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

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

(tam zamanında) bir bileşeni bu derleme de gerçekleştirir:

1

C# kodu MSIL derlenmiş, MSIL

2

C# derleme bu iki adımda yapılır .NET CLR tarafından halledilir bu .exe dosya çalıştırılabilir olmasıdır anlatmak gerekiyordu ne CIL gelen makine koduna

İlgili konular