междинен език

Разглеждане на междинно език (IL) по-подробно. IL код е независима от платформата, на която изпълнението ще се извършва. В този случай, компилаторът ще генерира код за платформата .NET 1L, независимо от това, което език за програмиране (Delphi, C #, Visual Basic.NET, Айфеловата, и т.н.), използван за създаване на програмата. Като пример, ние ще се създаде програма, която добавя две числа. Единственото нещо, то е, че ще можем да направим - добавяне на номера 2 и 3. По-долу е списък с кода на програмата на езика на Delphi, аз не знам езика Делфи, можете да разберете смисъла на тази програма и на синтактичната структура, докато не се обърне внимание, програма Сума; £ $ Тип приложение конзола> употреби

SumXY: = X + Y; Напишете (SumXY) Четох в]; край.

След съставянето на програма за изпълнимия файл Sum.exe е получена. Този файл не е редовен изпълним файл, и е събранието, което може да бъде направено само за платформата .NET. Вътре в този файл са явни, библиотеки, команди и IL метаданни, описващи сумата програма, която лесно се вижда през ildasm.exe програма (фиг. 2.2 и 2.3). Това ще бъде обсъдено по-нататък.

междинен език

Фиг. 2.2. Сума програмни компоненти в прозореца на програмата

В първия етап няма да се налага да се справят с източника на IL, така че не се опитват да разберат какво е написано там. Просто проверете за себе си колко е лесно да получите достъп до цялото общество, и да научат всичко, което е необходимо за разбиране на функционирането на елементите за монтаж. В този случай, можете да видите ясно, че компилаторът Delphi генерира не е платформено-зависима командване в стаята, както и кода IL.

Но защо Microsoft премина към създаването на IL 1L и какви са предимства пред конвенционалните платформа набиране зависими команди? Едно от предимствата, от които вече бяха споменати - е възможността за пълна оперативна съвместимост език. Тъй като всеки код на всеки език за програмиране .NET е компилиран в стандартен набор от IL инструкции, проблеми с взаимодействието между блоковете IL код няма. Взаимодействието ще се извършва на бинарно ниво, което е от ключово значение за висока скорост.

Друга възможна възползва от - независимо от хардуерната платформа. Можем да предположим, че .NET среда ще бъде удължен до различни компютърни платформи и операционни системи (различни от Windows), че вече се е случило с езика Java.

междинен език

Фиг. 2.3. Сума програмен код на езика, IL

Защото възли съдържат платформено независима код IL и управляват в отбора си, предназначени за конкретен платформа, а след това някой трябва да поеме работата на IL компилация за желания екипа платформа. Това се занимава с компилатор на времето за изпълнение (JIT). JIT компилатор е част srely .NET време на изпълнение. Използването код 1L, разработчиците не могат да мислят повече за функциите на архитектурата на процесора конкретен компютър - тези функции ще бъдат включени лъчетерапия.

Съставена от 1л конкретната платформа компилатор отбор LT раздвижване в кеша, което ускорява прилагането. Например, първата покана за всеки метод JIT компилира, свързана с кода IL за метода на командите конкретната платформа. С многократните призиви към този метод LT вече няма да се занимава с изготвяне, но просто приемете готов кода от кеша.