Краткие итоги

Все приложения. NET поставляются в виде скомпилированного кода MSIL. Весь процесс компиляции приложения. NET состоит из двух этапов – преобразования исходного кода программы в код на языке MSIL и преобразование кода MSIL в машинный код. Такой процесс позволяет абстрагироваться от платформы исполнения, а также оптимизировать машинный код под конкретную платформу. Преобразование кода MSIL в машинный код происходит в момент запуска программы JIT -компилятором, а результат сохраняется в специальном кэше. Поэтому первый запуск. NET приложения может осуществляться с небольшой задержкой. Однако, этого можно избежать, если использовать утилиту NGen.

Чем MSIL отличается от традиционного языка ассемблера?

При компиляции приложений. NET на выходе получается не исполняемый машинный код, а промежуточный код на специальном языке, который называется MSIL (Microsoft Intermediate Language) или просто IL (Intermediate Language). Своим внешним видом MSIL напоминает язык Ассемблера, но является более высокоуровневым и по своей природе является объектно-ориентированным. Давайте рассмотрим следующий пример: мы создадим консольное приложение и напишем элементарный код для вывода строки на консоль.

После этого, из полученной сборки получим код на языке IL (путем дизассемблирования). Это можно сделать при помощи утилиты Ildasm.exe, которая поставляется в составе. NET Framework.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: