Компилиране в MSIL Microsoft Docs

Актуализирано: ноември 2007 г

Когато се компилира в управляван код, компилаторът преобразува изходния код в Microsoft Intermediate Language (MSIL), който е независим от процесора набор от инструкции, които могат да бъдат ефективно преобразувани в собствен код. Езикът MSIL включва инструкции за зареждане, запазване, инициализиране и извикване на методи на обекти, както и инструкции за аритметични и логически операции, контролни потоци, директен достъп до паметта, обработка на изключения и други операции. MSIL кодът трябва да бъде преобразуван в специфичен за процесора код преди изпълнение, обикновено с JIT компилатор. Тъй като общата езикова среда за изпълнение предоставя един или повече JIT компилатори за всяка поддържана компютърна архитектура, единичен набор от MSIL инструкции може да бъде компилиран и изпълнен на всяка поддържана архитектура.

Когато компилаторът генерира MSIL код, метаданните се създават едновременно. Метаданните съдържат описание на типовете в кода, включително дефиницията на всеки тип, етикетите на всеки тип член, членовете, посочени в кода, и друга информация, използвана от средата за изпълнение по време на изпълнение. MSIL кодът и метаданните се съдържат в преносим изпълним (PE) файл, който е разширение на форматите Microsoft PE и COFF, използвани преди това за изпълнимо съдържание. Този файлов формат, който позволява хостване на MSIL или собствен код и метаданни, позволява на операционната система да разпознава изображения за време на изпълнение на общ език (CLR). Наличието на метаданните във файла заедно с MSIL кода позволява описанието да бъде поставено в самия код. Това елиминира необходимостта от библиотеки с типове или език за дефиниране на интерфейс (IDL). Средата за изпълнение намира и извлича метаданни от файл, когато е необходимоекзекуция.