Загально мовне середовище виконання – CLR – динамічна складова MS.NET Framework 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Загально мовне середовище виконання – CLR – динамічна складова MS.NET Framework



Базовий рівень підсистеми MS.NET Framework складає загальномовне середовище виконання (Common Language Runtime або CLR). В Windows XP його код міститься в mscorlib.dll. Це головна бібліотека.NET CLR.

Середовище виконання CLR реалізує управління пам'яттю, типами даних, міжмовною взаємодією, розгортанням (deployment) застосувань.

Середовище CLR активізує виконуваний код, виконує для нього перевірку безпеки, розташовує цей код в пам'яті і виконує його. Важливою частиною роботи середовища CLR є управління пам'яттю, а саме автоматичне вивільнення пам'яті, що звільняється при роботі програм (збірка сміття).

Для забезпечення можливості багатомовної розробки програмний код, після компіляції на одній з алгоритмічних мов платформи MS.Net, представляється на спеціально розробленій спільній проміжній мові (Common Intermediate Language або CIL). Ця мова, з одного боку, достатньо близька до машинно-залежних мов – асемблерів, з іншого боку, CIL забезпечує вищий рівень представлення різних комп'ютерних платформ. Як результат, програма на мові CIL залишається платформо-незалежною, проте вимагає деякої додаткової настройки (компіляції) перед початком свого виконання.

В ході компіляції програма на.NET-сумісній мові програмування трансформується відповідно до наперед заданої узагальненої специфікації типів Common Type System (CTS). Система типів CTS повністю описує всі типи даних, які підтримуються середовищем виконання, визначає їх взаємозв'язки і зберігає їх відображення в систему типів.NET.

 

 

Програмні файли на мові CIL, одержувані після компіляції програм на алгоритмічних мовах платформи MS.Net, називаються збірками (assembly), інше їх найменування - переносимі виконувані файли (Portable Executable або PE).

Збірки є файлами з розширеннями exe або dll і складаються з безпосередньо програмного коду на мові CIL і додаткових службових даних, які називаються метаданими (у складі метаданих необхідна інформація про збірку – відомості про типи, дані про версію, посилання на зовнішні збірки і т.п.).

Збірки перед своїм виконанням повинні пройти певну настройку для роботи в умовах конкретної вибраної платформи – для виконання таких настройок у складі середовища CLR є ряд JIT-компіляторів (Just-Іn-Time compilers), що викликаються для перекладу програмного коду на проміжній мові (CIL-кода) в машинний (native) код платформи виконання.

Таким чином, має місце 2-етапна компіляція модулів:

1. На першому етапі створюється незалежний від платформи PE-файл (керований модуль). Цей файл містить код на проміжній мові MSIL (Microsoft Intermediate Language) і метадані, які містять всю необхідну інформацію про програму для її подальшого використання.

2. На другому етапі за допомогою JIT (Just In Time Compiler) виконується компіляція і верифікація модулів, формування збірок для конкретної платформи та їх виконання.

Система типів даних в Microsoft.NET

Cистема типів Microsoft.NET утворює ієрархію із зростанням спільності знизу вгору, в якій явно виділяються дві великі групи типів, а саме, типи-значення ( value type) і типи-посилання ( reference type).

Ця система типів спільна для всіх мов, які підтримуються в.NET. Існує також механізм відображення типів з CTS (Common Type System) на типи конкретних мов і навпаки.

Типи даних також об’єднуються в простори імен (namespace).

 

Рис. 5.1. Структура системи типів Microsoft.NET

Типи-значення є статичними типами, пам’ять для них виділяється у стеку і вивільняється після завершення роботи програми.

Типи-значення не беруть участь в наслідуванні. Крім того, типи-значення копіюються при привласненні значення.

Посилкові типи потребують використовування покажчиків на об’єкти, що типізуються, а також централізованого зберігання і вивільнення пам'яті. Отже, об’єкти цього типу є динамічними, пам’ять під них виділяється з «кучі» і вивільняється після знищення об’єкти («збірка сміття»).

Посилкові типи можуть приймати одну з трьох форм:

1) об'єктні типи (object type);

2) інтерфейсні типи (interface type);

3) типи-покажчики (pointer type).

Управління типами в CTS

• Типи можуть використовуватися після ініціалізації (з урахуванням методу виклику, властивостей get і set і т.д.).

• Над типами можуть виконуватися перетворення (як явним, так і неявним чином).

 

 



Поделиться:


Последнее изменение этой страницы: 2017-02-21; просмотров: 354; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.139.78.149 (0.004 с.)