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


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

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

Применение отладочных инструментов
Установка приложения
Отображение текста
Замыкания (closure)
Типы значений и ссылочные типы
Перегрузка операторов в Visual C#
Parsing Expression Grammar Support for C# 3.0 Part 1 – PEG Lib and Parser Generator
Типы данных .NET Framework
Подключение класса DoughnutMachine к пользовательскому интерфейсу
Оповещение пользователя об ошибках ввода
Загрузка элемента управления в Internet Explorer
Добавление элементов управления на панель Toolbox
Ресурсы и ресурсные сборки
Towards Cleaner Code II, a C# GUI Invoke/Async Helper
Редактор типов файлов
| .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's Top100

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

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