Состоит ли файл .exe, созданный компилятором C#, исключительно из Common Intermediate Language (CIL)?C#

Место общения программистов C#
Ответить
Anonymous
 Состоит ли файл .exe, созданный компилятором C#, исключительно из Common Intermediate Language (CIL)?

Сообщение Anonymous »

Я просто пытаюсь лучше понять, что происходит в простом сценарии, когда следующий код добавляется в файл и сохраняется с расширением .cs:

Код: Выделить всё

public class HelloWorld
{
public static void Main()
{
System.Console.WriteLine("Hello World!");
System.Console.ReadLine();
}
}
а затем эта программа запускается из командной строки Windows с помощью:

Код: Выделить всё

C:\Windows\Microsoft.NET\Framework\v4.0.30319>csc /t:exe /out:C:\HelloWorld\HelloWorld.exe C:\HelloWorld\HelloWorld.cs
Я вижу, что этот процесс создает файл .exe, однако, когда я читаю о процессе компиляции в Википедии, там говорится:

  • Исходный код преобразуется в Common Intermediate Language (CIL), который в CLI является эквивалентом языка ассемблера для ЦП.
    < li>Затем CIL собирается в форму так называемого байт-кода и создается сборка CLI.
  • После выполнения сборки CLI ее код передается через JIT-компилятор среды выполнения для генерации собственный код...
  • Нативный код выполняется процессором компьютера.

Значит, сам файл .exe состоит исключительно из общего промежуточного языка? И является ли сам этот файл тем, что в статье в Википедии называется «сборкой CLI»? Я немного сбит с толку, потому что вижу только файл .exe, а для меня термин «сборка» подразумевает более одного файла.

И связанный с этим вопрос:
  • есть ли JIT-компилятор где-то в Microsoft. NET, и после выполнения файла .exe файл связывается с JIT-компилятором, который затем выводит инструкции в собственном коде?


Подробнее здесь: https://stackoverflow.com/questions/177 ... common-int
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»