Компіляція у MSIL, Microsoft Docs
Оновлено: Листопад 2007
При компіляції в керований код компілятор перетворює вихідний код на проміжну мову Microsoft (MSIL), що є незалежним від процесора набором інструкцій, який можна ефективно перетворити на машинний код. Мова MSIL включає інструкції для завантаження, збереження, ініціалізації та виклику методів для об'єктів, а також інструкції для арифметичних та логічних операцій, потоків управління, прямого доступу до пам'яті, обробки винятків та інших операцій. Перед виконанням код MSIL необхідно перетворити на код для конкретного процесора, зазвичай за допомогою JIT-компілятора Оскільки середовище CLR надає для кожної підтримуваної комп'ютерної архітектури один або кілька JIT-компіляторів, один набір інструкцій MSIL можна компілювати і виконувати в будь-якій підтримуваній архітектурі.
Коли компілятор створює код MSIL, одночасно створюються метадані. Метадані містять опис типів коду, включаючи визначення кожного типу, підписи кожного члена типу, члени, на які є посилання в коді, а також інші відомості, що використовуються середовищем виконання під час виконання. Код MSIL і метадані містяться в файлі, що виконується (PE), який являє собою розширення форматів Microsoft PE і COFF, раніше використовувалися для виконуваного вмісту. Цей формат файлів, що дозволяє розміщувати код MSIL або машинний код, а також метадані, дозволяє операційній системі розпізнавати образи середовища CLR. Наявність у файлі метаданих поряд із кодом MSIL дозволяє розміщувати опис усередині самого коду. Це усуває необхідність використання бібліотек типів або мови визначення інтерфейсу (IDL). Середовище виконання знаходить і витягує метадані з файлу при необхідності привиконанні.