logo

.НЕТ Цоммон Лангуаге Рунтиме (ЦЛР)

.НЕТ ЦЛР је окружење за извршавање које управља и извршава код написан у било ком .НЕТ програмском језику. ЦЛР је компонента виртуелне машине .НЕТ фрамеворк-а. Компајлер тог језика компајлира изворни код апликација развијених коришћењем .НЕТ компатибилних језика у ЦЛР-ов средњи језик који се зове МСИЛ, односно, Мицрософтов међујезички код. Овај код је независан од платформе. Упоредив је са бајт кодом у Јави. Метаподаци се такође генеришу током компилације и МСИЛ кода и чувају у датотеци познатој као датотека манифеста. Ови метаподаци се углавном односе на чланове и типове које ЦЛР захтева за извршавање МСИЛ кода. Компајлерска компонента ЦЛР-а за право на време претвара МСИЛ код у изворни код машине. Овај код зависи од платформе. ЦЛР управља меморијом, нитима, изузецима, извршавањем кода, безбедношћу кода, верификацијом и компилацијом.

стринг у низу у ц

Следећа слика приказује конверзију изворног кода у изворни код.

Нет Цоммон Лангуаге Рунтиме

Горња фигура претвара код у изворни код, који ЦПУ може да изврши.

Главне компоненте ЦЛР-а су:

  • Систем уобичајеног типа
  • Заједничка језичка специјација
  • Ђубретар
  • Јуст ин Тиме Цомпилер
  • Метаподаци и скупови
Нет Цоммон Лангуаге Рунтиме

1. Систем уобичајеног типа:

ЦТС пружа смернице за декларисање, коришћење и управљање типовима података током извршавања. Нуди комуникацију на више језика. На пример, ВБ.НЕТ има целобројни тип података, а Ц# има инт тип података за управљање целим бројевима. Након компилације, Инт32 користе оба типа података. Дакле, ЦТС обезбеђује типове података користећи управљани код. Уобичајени систем типова помаже у писању кода независног од језика.

Он пружа две категорије Типова.

    Тип вредности:Тип вредности чува податке у меморији додељеној на стеку или инлине у структури. Ова категорија типа садржи директоријум података. Ако се вредност једне променљиве копира у другу, обе променљиве независно чувају податке. Може бити уграђених типова, кориснички дефинисаних или типова набрајања. Уграђени типови су примитивни типови података као што су нумерички, логички, цхар и датум. Корисници у изворном коду креирају кориснички дефинисане типове. Набрајање се односи на скуп набројаних вредности представљених ознакама, али ускладиштених као нумерички тип.
    Нет Цоммон Лангуаге Рунтиме Тип референце:Референтни тип чува референцу на вредност меморијске адресе и додељује се на хрпи. Хеап меморија се користи за динамичку алокацију меморије. Референтни тип не садржи стварне податке директно, већ садржи адресу података. Кад год се направи објекат референтног типа, он копира адресу, а не стварне податке. Према томе, две варијабле ће се односити на исте податке. Ако су подаци једног објекта Референтног типа промењени, исто се одражава и на други објекат. Референтни типови могу бити самоописујући типови, типови показивача или типови сметњи. Типови који се самоописују могу бити низови, низови и типови класа који чувају метаподатке о себи.

2. Спецификација заједничког језика (ЦЛС):

Заједничка језичка спецификација (ЦЛС) садржи скуп правила која треба да прате сви језици који подржавају НЕТ. Заједничка правила олакшавају имплементацију интеграције језика и помажу у наслеђивању и отклањању грешака на више језика. Сваки језик који подржава НЕТ Фрамеворк има сопствена правила синтаксе. Али ЦЛС обезбеђује интероперабилност међу апликацијама развијеним коришћењем НЕТ језика.

3. Сакупљање смећа:

Гарбаге Цоллецтор је компонента ЦЛР-а која ради као аутоматски менаџер меморије. Помаже у управљању меморијом аутоматским додељивањем меморије према захтевима. Додељује меморију гомиле објектима. Када објекти нису у употреби, он враћа меморију која им је додељена за будућу употребу. Такође обезбеђује сигурност објеката тако што не дозвољава једном објекту да користи садржај другог објекта.

4. Јуст ин Тиме (ЈИТ) компајлер:

ЈИТ компајлер је важна компонента ЦЛР-а. Конвертује МСИЛ код у изворни код (тј. код специфичан за машину). .НЕТ програм се компајлира експлицитно или имплицитно. Програмер или програмер позива одређени компајлер да компајлира програм у експлицитној компилацији. У имплицитној компилацији, програм се компајлира два пута. Изворни код се компајлира у Мицрософт Интермедиате Лангуаге (МСИЛ) током првог процеса компилације. МСИЛ код се конвертује у изворни код у другом процесу компилације. Овај процес се зове ЈИТ компилација. Постоје три типа ЈИТ компајлера - Пре, Ецоно и Нормал. Пре ЈИТ компајлер компајлира цео МСИЛ код у изворни код пре извршења. Ецоно ЈИТ Цомпилер компајлира само оне делове МСИЛ кода који су потребни током извршавања и уклања оне делове који више нису потребни. Нормални ЈИТ компајлер такође компајлира само оне делове МСИЛ кода који су потребни током извршавања, али их смешта у кеш за будућу употребу. Не захтева поновну компилацију већ коришћених делова пошто су смештени у кеш меморију.

5. Метаподаци:

Метаподаци су бинарне информације о програму, било ускладиштене у ЦЛР преносивој извршној датотеци (ПЕ) заједно са МСИЛ кодом или у меморији. Током извршавања МСИЛ-а, метаподаци се такође учитавају у меморију ради правилног тумачења класа и сродних. Информације које се користе у коду. Дакле, метаподаци помажу у имплементацији кода на језички неутралан начин или у постизању интероперабилности језика.

6. Скупштине:

Склоп је основна јединица физичког груписања кода. Састоји се од манифеста склопа, метаподатака, МСИЛ кода и скупа ресурса попут датотека слика. Такође се сматра основном јединицом за примену, контролом верзија, поновном употребом, безбедносним дозволама итд.

.НЕТ ЦЛР функције

Следе функције ЦЛР-а.

  • Конвертује програм у изворни код.
  • Обрађује изузетке
  • Пружа сигурност типа
  • Управљање меморијом
  • Пружа сигурност
  • Побољшане перформансе
  • Независна од језика
  • Независно од платформе
  • Отпад
  • Пружа језичке карактеристике као што су наслеђивање, интерфејси и преоптерећење за објектно оријентисане програме.

Код који се покреће са ЦЛР-ом назива се управљани код, док се код изван ЦЛР-а назива неуправљаним кодом. ЦЛР такође обезбеђује слој интероперабилности, који омогућава да управљани и неуправљани кодови интероперишу.

1. Управљани код:

Сваки језик који је написан у .НЕТ фрамеворк-у је управљани код. Управљани код користи ЦЛР, који брине о вашим апликацијама управљајући меморијом, руковањем безбедношћу, омогућавајући вишејезичко отклањање грешака, итд. Процес управљаног кода је приказан на слици:

Нет Цоммон Лангуаге Рунтиме

2. Неуправљани код:

Код развијен изван .НЕТ оквира познат је као неуправљани код. За апликације које не раде под контролом ЦЛР-а се каже да се не управљају. Одређени језици као што је Ц++ могу се користити за писање таквих апликација, као што су функције приступа ниског нивоа оперативног система. Позадинска компатибилност са ВБ, АСП и ЦОМ примери су неуправљаног кода. Овај код се извршава уз помоћ класа омотача. Процес неуправљаног кода је приказан у наставку:

Нет Цоммон Лангуаге Рунтиме

.НЕТ ЦЛР верзије

ЦЛР се с времена на време ажурира да би обезбедио боље перформансе.

.НЕТ верзија ЦЛР верзија
1.0 1.0
1.1 1.1
2.0 2.0
3.0 2.0
3.5 2.0
4 4
4.5 4
4.6 4
4.6 4

.НЕТ ЦЛР структура

Следи структура компоненти Цоммон Лангуаге Рунтиме.

Нет Цоммон Лангуаге Рунтиме

Подршка за библиотеку основне класе

То је библиотека класа која подржава класе за .НЕТ апликацију.

Тхреад Суппорт

Он управља паралелним извршавањем апликације са више нити.

ЦОМ Марсхалер

Обезбеђује комуникацију између ЦОМ објеката и апликације.

Сецурити Енгине

Он спроводи безбедносна ограничења.

Дебуг Енгине

Омогућава вам да отклањате грешке у различитим врстама апликација.

Типе Цхецкер

Он проверава типове који се користе у апликацији и потврђује да се подударају са стандардима које обезбеђује ЦЛР.

Цоде Манагер

Управља кодом током извршавања.

Ђубретар

Он ослобађа неискоришћену меморију и додељује је новој апликацији.

Обрађивач изузетака

Он обрађује изузетак у току рада да би се избегао отказ апликације.

ЦлассЛоадер

Користи се за учитавање свих класа током извршавања.