Имя Пароль
Зарегистрироваться


* При перепечатке материалов ссылка на 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

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

Доступ к «плоским» файлам
Специальные возможности и элементы управления Windows Forms
Классы CTS
Архитектура данных ADO.NET
Редактор реестра
Создание обработчиков событий элементов управления
Рисование простых фигур
Установка порядка передачи фокуса при нажатии клавиши Tab
Реализация свойств
Управление лицензированием элементов управления
Лямбда-выражения
Абстрактные классы и члены
Окна Locals, Autos и Watch
Создание DataAdapter с помощью окна Server Explorer
Создание поддержки печати
| .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 31


     



Rambler

Данный сайт или домен продается ICQ: 403-353-727

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