Основы языка C# 2005. Евсеева О.Н - 10 стр.

UptoLike

Составители: 

14
операционной системы и возможность реализовать "интеллектуальное
выполнение" кода, управляя интерпретируемым кодом.
Разработчики .NET постарались решить проблему эффективности
интерпретируемого кода. Для этого в составе .NET Framework имеется Just In
Time (JIT) компилятор, который выполняет преобразование кода MSIL в
машинные команды по мере вызова подпрограмм. Как только в коде
встречается вызов подпрограммы, загрузчик CLR находит и загружает
необходимый фрагмент кода в компилятор JIT. В результате ненужная в
данный момент часть кода приложения может быть вообще не
откомпилирована. Откомпилированный в ходе одного сеанса выполнения
приложения код можно использовать многократно, CLR позаботится о том,
чтобы сохранить его на протяжении сеанса работы с приложением. Кроме
этого, CLR может хранить однажды откомпилированный код подпрограмм на
жестком диске и вызывать его при повторных обращениях к приложению.
На выходе компилятора создается так называемый управляемый код,
который затем исполняется в среде CLR. Код называется управляемым, т. к. он
содержит метаданные, позволяющие CLR, кроме очевидной функции
управлением компиляцией, выполнять и многие другие операции, к которым
относятся проверка безопасности, проверка прав, контроль версий, сборка
мусора и т. д. Напомним, что все это делается с помощью метаданных,
содержащихся в сборке приложения .NET.
Таким образом, разработка приложений .NET выполняется в
специализированных средах, а выполнение подразумевает использование
операционной среды .NET Framework.
Новизна архитектуры .NET базируется на «трех технологических китах»:
1. Исполняемые файлы компилируются в коды специального промежуточного
языка MSIL.
2. Совместно с кодом программы исполняемые файлы содержат метаданные
всю служебную информацию о приложении.
3. Приложения .NET компилируются в машинный код по мере необходимости
и выполняются в платформенно-зависимой среде выполнения.
1.3.1. Язык MSIL
Промежуточный язык Microsoft Intermediate Language (MSIL) – это
независимый от процессора набор инструкций, поддерживающих все
стандартные конструкции и операции современных языков программирования.
Он допускает операции с памятью, арифметические и логические операции,
обработку исключений, работу с объектами и их свойствами и методами,
использование массивов и т. д.
MSIL – язык более высокого уровня, чем любой машинный язык, но это
не меняет его сути, как машинного языка, поскольку он может быть описан при