Оглавление:
Определение - Что означает промежуточный язык (IL)?
Промежуточный язык (IL) - это объектно-ориентированный язык программирования, разработанный для использования компиляторами для .NET Framework до статической или динамической компиляции в машинный код. IL используется .NET Framework для генерации машинно-независимого кода в качестве результата компиляции исходного кода, написанного на любом языке программирования .NET.
IL - это основанный на стеке язык ассемблера, который преобразуется в байт-код во время выполнения виртуальной машины. Он определяется спецификацией инфраструктуры общего языка (CLI). Поскольку IL используется для автоматической генерации скомпилированного кода, нет необходимости изучать его синтаксис.
Этот термин также известен как промежуточный язык Microsoft (MSIL) или общий промежуточный язык (CIL).
Техопедия объясняет средний язык (IL)
С помощью подходящего JIT-компилятора Just-in-Time код IL может быть выполнен на любой компьютерной архитектуре, поддерживаемой JIT-компилятором. В отличие от интерпретаторов, JIT-компиляция обеспечивает лучшую производительность, экономит память и экономит время при инициализации приложения. IL обеспечивает независимость от платформы и ЦП в .NET Framework, позволяя выполнять скомпилированный исходный код в любой среде, поддерживающей спецификацию CLI.
Проверка безопасности кода для кода IL обеспечивает лучшую безопасность и надежность, чем встроенные исполняемые файлы. Метаданные, описывающие код MSIL в переносимом исполняемом файле, устраняют необходимость в библиотеках типов и файлах языков промежуточного определения, которые использовались в технологии Component Object Model (COM). В сочетании с метаданными и системой общих типов IL создает средства для интеграции модулей, написанных на разных языках, в одно приложение, что обеспечивает независимость от языка.
Хотя IL похож на байт-код Java в использовании компиляторами, он отличается от последнего тем, что он разработан для независимости от платформы и от языка. Он также отличается тем, что он компилируется и не интерпретируется.
Два типа наборов инструкций включены с IL; базовые инструкции, аналогичные родным инструкциям процессора, и инструкции объектной модели, используемые языком высокого уровня. IL включает в себя все инструкции, необходимые для загрузки, хранения, инициализации и вызова методов на объектах. Он также включает в себя арифметические и логические операции, поток управления, прямой доступ к памяти, обработку исключений и другие операции. В отличие от обычного формата объектного файла, используемого для исполняемого содержимого в традиционном переносимом исполняемом файле Microsoft, переносимый исполняемый файл, сгенерированный после компиляции управляемого кода, содержит инструкции IL и метаданные.
Двумя инструментами, связанными с кодом IL, являются MSIL Assembler (Ilasm.exe) и MSIL Disassemble (Ildasm.exe). Первый генерирует переносимый исполняемый файл из кода IL и позволяет просматривать код IL в удобочитаемом формате, а второй преобразует переносимый исполняемый файл обратно в текстовый файл для просмотра и модификации. Оба автоматически устанавливаются как часть Visual Studio.
