пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ


Язык IL, назначение, особенности и возможности языка. Структура типов данных. Алгоритм обработки вызовов методов в CLR.

Промежуточный язык Microsoft (Microsoft Intermediate Language — MSIL, или просто IL) определяет систему команд, которая используется всеми компиляторами, транслирующими на язык платформы .NET. Этот промежуточный язык не зависит от используемой платформы. Код на языке MSIL затем преобразуется во внутренний (собственный) код платформы.

Возможности: IL — язык более высокого уровня в сравнении с большинством других машинных языков. Он позволяет работать с объектами и имеет команды для создания и инициализации объектов, вызова виртуальных методов и непосредственного манипулирования элементами массивов. Он даже имеет команды генерации и захвата исключений для обработки ошибок. IL можно рассматривать как объектно-ориентированный машинный язык.

IL открывает доступ ко всем возможностям CLR. IL не привязан к какой-либо конкретной аппаратной платформе. Это значит, что управляемый модуль, содержащий IL-код, может исполняться на любой аппаратной платформе.  Разработка приложений с управляемым IL делает программиста более независимым от архитектуры процессора.

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

Ввиду своей ненаглядности, IL практически не используется для программирования комплексных алгоритмов

Структура типов                                Object

 

(reference types)

Value Type

(value types)

 

Class

Interface

Array

String

Delegate

Byte

Char

Int16

Int32

Int64

Decimal

Boolean

Unit16

Unit32

Unit64

Structure

Others

Single

Double

Enum

 
 

 

 

 

 
 

         Для выполнения какого-либо метода его IL-код должен быть преобразован в команды процессора. Этим занимается JIT-компилятор CLR.  Непосредственно перед исполнением Main CLR находит все типы, на которые ссылается код Main. При этом CLR выделяет внутренние структуры данных, используемые для управления доступом к типам, на которые есть ссылки. JITCompiler ищет в метаданных соответствующей сборки IL-код вызываемого метода. Затем JITCompiler проверяет и компилирует IL-код в собственные команды процессора, которые сохраняются в динамически выделенном блоке памяти. После этого JITCompiler возвращается к внутренней структуре данных типа и заменяет адрес вызываемого метода адресом блока памяти, содержащего собственные команды процессора. В завершение JITCompiler передает управление коду в этом блоке памяти.


14.01.2019; 12:07
хиты: 447
рейтинг:0
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь