* При перепечатке материалов ссылка на www.SeoLiga.ru обязательна! RSS



Промежуточный язык
31 марта 2009

Рассмотрим промежуточный язык (IL) более подробно. Код IL не зависит от плат-
формы, на которой будет производиться выполнение. При этом компилятор для
платформы .NET сгенерирует код IL вне зависимости от того, какой язык профаммиро-
вания (Delphi, C#, Visual Basic.NET, Eiffel и т.д.) использовался для создания профам-
мы. В качестве примера мы создадим профамму сложения двух чисел. Единственное,
что она у нас будет уметь делать, — складывать числа 2 и 3. Ниже приведен листинг
с кодом этой профаммы на языке Delphi. Даже не зная языка Delphi, можно понять
смысл этой профаммы, а на синтаксические конструкции пока не обращайте внимания.
program Sum;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
X,Y,SumXY: Integer;
begin
X := 2;
Y := 3;
SumXY := X + Y;
Write(SumXY);
Readln;
end.
После компиляции этой программы будет получен исполняемый файл Sum.exe.
Этот файл не является обычным исполняемым файлом, а представляет сборку, ко-
торую можно выполнить только на платформе .NET. Внутри этого файла находятся
манифест, необходимые библиотеки, команды IL и метаданные, описывающие
программу Sum, которые легко увидеть с помощью программы ildasm.exe
На первом этапе вам не придется разбираться с кодом IL, поэтому не старайтесь
понять, что там написано. Лишь отметьте для себя, как просто получить доступ к лю-
бой сборке и узнать все, что необходимо для понимания работы элементов сборки.
При этом можете наглядно убедиться, что компилятор Delphi генерирует не зависи-
мый от платформы набор команд, а код IL.
Но почему Microsoft пошла по пути создания IL и какие преимущества IL перед
обычным набором зависимых от платформы команд? Одно из преимуществ, о кото-
ром уже упоминалось, — это возможность полного межъязыкового взаимодействия.
Поскольку любой код на любом языке программирования .NET компилируется
в стандартный набор инструкций IL, проблем с взаимодействием между блоками кода
IL не будет. При этом взаимодействие будет производиться на двоичном уровне, что
является залогом высокого быстродействия.
Еще одно возможное преимущество — независимость от аппаратной платформы.
Можно предположить, что среда выполнения .NET будет распространена на самые
разные компьютерные платформы и операционные системы (отличные от Windows),
что уже произошло с языком Java.
Поскольку в сборках содержится независимый от платформы код IL, а выполня-
ются в конечном итоге команды, рассчитанные на определенную платформу, то кто-
то должен взять на себя работу по компиляции IL в команды для нужной платформы.
Этим занимается компилятор времени исполнения (ЛТ). Компилятор ЛТ входит
в состав среды исполнения .NET. Используя код IL, разработчики могут не думать об
особенностях архитектуры центрального процессора определенного компьютера — эти
особенности будут учтены ЛТ.
Откомпилированные из IL платформенно-зависимые команды компилятор ЛТ раз-
мещает в кэш-памяти, что значительно ускоряет работу приложения. Например, при
первом вызове какого-либо метода ЛТ откомпилирует относящийся к этому методу код
IL в платформенно-зависимые команды. При повторных вызовах этого метода ЛТ уже
не будет заниматься компиляцией, а просто возьмет готовый код из кэш-памяти.

Теги: линейное программирование графический метод, программирование на pascal .NET

Статьи по теме:

Применение наборов элементов управления
Всё новое - это хорошо забытое старое
Свойства Font, Cursor и BackGroundlmage
Установка точек прерывания
Мемоизация (memoization)
Towards Cleaner Code, A C# Asynchronous Helper
Получение доступа к членам базового класса
Набор Listeners
Создание конфигурационного файла
Редактор нестандартных действий
CBitmapEx – C++-класс для работы с BMP
Создание обработчика для группы событий
Делегаты
Объект Graphics
Создание обработчиков событий элементов управления
| .NET | vitek |
 


Пн Вт Ср Чт Пт Сб Вс
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30


     



Данный сайт или домен продается

© 2009 Seoliga.ru | .NET | Промежуточный язык. Регион сайта: Москва и Санкт-Петербург