I. История создания платформы microsoft. Net framework
Шаг 1. По стандартной процедуре осуществляется компиляция кода с помощью компилятора языка С# в ЕХЕ-файл. Шаг 2
Download 69,03 Kb.
|
T Тулабоев Э Выполнение кода на платформе NET NET runtime 2
Шаг 1. По стандартной процедуре осуществляется компиляция кода с помощью компилятора языка С# в ЕХЕ-файл.
Шаг 2. Компилятор создает MSIL-код и помещает в раздел со свойством “только на чтение” выходного файла стандартный РЕ-заголовок (признак машино-независимой выполняемой программы для Win32) и импортирует из CLR функцию _CorExeMain. Шаг 3. При запуске приложения, ОС загружает этот РЕ, а также все нужные динамические подгружаемые библиотеки, в частности, библиотеку, которая экспортирует функцию _CorExeMain (mscoree.dll). Шаг 4. Загрузчик ОС по стандартной процедуре выполняет переход в точку входа РЕ, устанавливаемую компилятором. Однако так как ОС не в состоянии выполнить MSIL-код, то фактически в точке входа содержится препятствие, в котором установлена команда перехода к функции jCorExeMain из mscoree.dll. Данная функция перехватывает выполнение MSIL-кода, помещенного в РЕ. Шаг 5. Так как MSIL-код не может быть выполнен непосредственно (ведь это не машинный код), CLR компилирует его с помощью оперативного компилятора (just-in-time, или JIТ) в команды процессора. Эта компиляция выполняется только для непосредственно вызываемых методов программы. Шаг 6. Откомпилированный выполняемый код сохраняется на машине и перекомпилируется только в случае изменения исходного кода. Для преобразования MSIL в настоящий машинный код можно применить один из следующих JIТ-компиляторов.
Download 69,03 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2025
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling