Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Контакти
 


Тлумачний словник
Авто
Автоматизація
Архітектура
Астрономія
Аудит
Біологія
Будівництво
Бухгалтерія
Винахідництво
Виробництво
Військова справа
Генетика
Географія
Геологія
Господарство
Держава
Дім
Екологія
Економетрика
Економіка
Електроніка
Журналістика та ЗМІ
Зв'язок
Іноземні мови
Інформатика
Історія
Комп'ютери
Креслення
Кулінарія
Культура
Лексикологія
Література
Логіка
Маркетинг
Математика
Машинобудування
Медицина
Менеджмент
Метали і Зварювання
Механіка
Мистецтво
Музика
Населення
Освіта
Охорона безпеки життя
Охорона Праці
Педагогіка
Політика
Право
Програмування
Промисловість
Психологія
Радіо
Регилия
Соціологія
Спорт
Стандартизація
Технології
Торгівля
Туризм
Фізика
Фізіологія
Філософія
Фінанси
Хімія
Юриспунденкция






Характеристика типів даних для зборки програм

Типи даних призначені для опису функцій і програм в МП. Вони реалізуються системами програмування на різних платформах комп'ютерів у вихідному коді, який служить джерелом не лише для виконання програми в цій МП, але і для забезпечення інтероперабельності (взаємодії) у різних сучасних середовищах, що відрізняються між собою. Кожна реалізована програма відображає використовуваний тип даних конкретної МП, значення якого передається іншій програмі за допомогою виклику (звернення) і використовується при виконанні програми.

Питання інтероперабельності, пов'язані з програмуванням і використанням готових програм (системних, прикладних, проблемних, наукових і ін.) в процесах ГП, з якими фахівці різних областей організовують взаємодію при рішенні різного роду завдань.

Готові програми зберігаються, наприклад, в бібліотеках (Matlab, IP, Demral і тому подібне), в репозитаріях e-science, в Інтернеті, в середовищі систем загального призначення, а також у фондах фірм і організацій розробників. Із загальної точки зору, такі програми – це готові ресурси (компоненти, сервіси, агенти, ін.), для інтеграції їх в системи або сімейства систем, а також для організації обчислень фізичних, математичних, біологічних та інших завдань в сучасних середовищах При цьому при організації обчислень з використанням сучасних комп'ютерів виникають проблеми несумісності їх платформ, використовуваних в них МП і готових програмних ресурсів, розроблених на основі фундаментальних структур і типів даних.

Особливої актуальності набувають такі важливі чинники .

1. Різноманітність проектних рішень, що приймаються, при розробці великих програмних систем (ПС) і без врахування основних питань забезпечення сумісності їх складових частин за МП та типах даних.

2. Складність інтеграції різнорідних програм і компонентів повторного використання (КПВ) в рамках однієї ПС обумовлена не лише відмінностями апаратно-програмних платформ і вихідних кодів а й принципами трансформації описів наочних областей, конфігурації компонентів ПС в сімейства ПС, забезпечення їх взаємодії і життєдіяльності в різних середовищах.

3. Поширення інтернет-технологій привело до створення ряду нових мов опису даних і документів (XML, RDF, OWL і ін.), які також повинні враховуватися в нових розробках ПС при забезпеченні завдань передачі і обробки даних в нових мережених середовищах, типу Grid.

Платформа .NET базується на таких будівних блоках: CLR, CTS і CLS. Ці технології дуже важливі для розуміння змісту платформи. Середовище виконання .NET забезпечується за допомогою Common Language Runtime (CLR, стандартне середовище виконання для мов програмування). Головна роль CLR полягає в тому, щоб виявляти і завантажувати типи .NET і здійснювати управління ними у відповідності до команд користувача.

Один з будівельних блоків платформи .NET – це Common Type System (CTS, стандартна система типів). CTS повністю описує всі типи даних, які підтримуються середовищем виконання, визначає як одні типи даних можуть взаємодіяти із іншими, і як вони будуть представлені у формі метаданих .NET. Для того щоб створювати збірки, які можуть бути використані всіма мовами програмування .NET, необхідно при створені типів слідувати правилам Common Language Specification – CLS. Список типів, до яких застосовується специфікація CLS: класи CTS, структури CTS, інтерфейси CTS, члени типів CTS, перечислення CTS, делегати CTS, а також вбудовані типи даних представлені в табл.1.1.

 

Таблиця 3. 4. Вбудовані типи даних CTS

CTS тип даних VB.NET C# C++/CLI
System.Byte Byte Byte unsigned char
System.Sbyte Sbyte sbyte signed char
System.Int16 Short short Short
System.Int32 Integer Int int or long
System.Int64 Long long __int64
System.UInt16 Ushort ushort unsigned short
System.UInt32 UInteger uint unsigned int or unsigned long
System.UInt64 Ulong ulong unsigned __int64
System.Single Single float Float
System.Double Double Double Double
System.Object Object object Object^
System.Char Char char wchar_t
System.String String string String^
System.Decimal Decimal decimal Decimal
System.Boolean Boolean bool Bool

 

Не всі мови повинні підтримувати всі типи даних, які визначені в CTS.

CLS – це набір правил, який визначає підмножину загальних типів даних по відношенню до яких гарантується, що вони безпечні при використання у всіх мовах .NET.

В даних момент нараховується декілька десятків компіляторів .NET-сумісних мов програмування. Найбільш поширені мови, які мають великий багаж готових компонентів, або нові, які стрімко розвиваються це: ASP.NET, ASP, Visual Basic, C#, C++, Cobol, F#, Fortran, Haskell, Python, Java, JScript .NET, Lisp, Pascal, Perl, PHP, Prolog, Ruby, Smalltalk, Scala. На рис.2 наведені компілятори даного середовища, що генерують IL-інструкції та метадані.

Це зовсім не повний список діючих компіляторів, але існує безліч літератури, в якій від початку до кінця описується процес побудови компіляторів з мов для платформи .NET.

Common Language Runtime (CLR) — «загально мовне виконуюче середовище» — компонент пакету Microsoft .NET Framework, віртуальна машина, виконуюча програма, написана на .NET-сумісних мовах програмування. CLR задає загальну систему типів, яка використовується всіма мовами програмування. Це означає, наприклад, що всі мови програмування оперуватимуть цілочисельними даними або даними з плаваючою точкою єдиного формату та єдиної довжини, а представлення рядків теж будуть єдиними для всіх мов програмування. За рахунок єдиної системи типів досягається простіша інтеграція компонентів і кодів, написаних на різних мовах програмування. На відміну від COM-технології, також заснованої на наборі стандартних типів, але що представляються в бінарному вигляді, CLR дозволяє виконувати інтеграцію кодів (які можуть бути написані на різних мовах програмування) в режимі дизайну, а не в режимі виконання.

Microsoft .NET Framework є ключовим компонентом Microsoft .NET і служить платформою для створення, впровадження і виконання Web-сервісів і додатків. Вона надає засноване на стандартах високопродуктивне багатомовне середовище, в якому виконуються різні типи додатків і сервісів.

Компонент CLR розташовується над сервісами операційної системи, яка в даний час є операційною системою Windows, але надалі такою може бути практично будь-яка програмна платформа. Основне призначення CLR — виконання додатків, дотримання всіх програмних залежностей, управління пам'яттю, забезпечення безпеки, інтеграція з мовами програмування і тому подібне Середовище виконання забезпечує безліч сервісів, полегшуюче створення і впровадження додатків, та істотно покращує надійність останніх.

Розробники не взаємодіють з CLR безпосередньо — всі сервіси надаються уніфікованою бібліотекою класів, яка розташовується над CLR. Ця бібліотека містить більше 1000 класів для вирішення різних програмних завдань — від взаємодії з сервісами операційної системи до роботи з даними і XML-документами.

Частиною вказаної бібліотеки класів є програмна модель для створення Web-додатків, так звана ASP.NET. Вона містить класи, компоненти та сервіси, що полегшують створення Web-сервісів і додатків. Окрім Web-сервісів і Web-додатків за допомогою Microsoft .NET Framework можна створювати і інші типи додатки — консольні застосування, додатки на основі Windows Forms і Windows-сервіси. Але оскільки основним завданням Microsoft .NET Framework є підтримка створення Web-додатків, саме компонент ASP.NET відіграє найбільш значну роль в архітектурі Microsoft .NET Framework.

Важливою відмінністю виконавчих (двійкових) файлів .NET є те, що вони не містять залежних від платформи команд. Зміст двійкових файлів .NET – це платформо-назалежна «проміжна мова», яка офіційно називається Microsoft Intermediate Language (MSIL, проміжна мова Microsoft), або просто IL.

Коли за допомогою компілятора для платформи .NET створюється модуль DLL або EXE, зміст цього модуля – це так звана збірка (assambly) на мові IL. Код IL не залежить від платформи, на якій буде здійснюватись виконання. Проміжна мова Microsoft представляє собою проміжний рівень в процесі взаємодії початкового коду, написаного на будь-якій мові .NET, з машинною мовою у вигляді коду на мові псевдо-асемблера. Коли ми запускаємо код на виконання, MSIL конвертується в специфічний код CPU, зазвичай компілятором часу виконання (just-in-time (JIT) compiler). Завдяки тому, що CLR підтримує один і більше JIT-компіляторів, один і той же набір MSIL може бути скомпільованим і виконаним на різних архітектурах .

Тобто знання проміжної мови необхідне для можливості програмування на будь-якій мові програмування, а MSIL демонструє переваги однієї мови над іншою. З цієї точки зору, IL є великим зрівнювачем. В світі .NET одна частина коду може бути написана на Effil, в той час як інше може бути написане на C# чи VB.NET, але вкінці все буде конвертоване в IL.

Програми, розташовані на різних типах комп'ютерах мережі, передають один одному дані через інтерфейсні протоколи. Передані дані у фор­маті одного комп'ютера перетворюються до формату даних (так звана проце­дура маршалінга даних) приймаючої серверної платформи з врахуванням порядку та стратегії вирівнювання, прийнятої на ній. Демаршалінг даних забезпечує зворотнє перетворення отриманого на сервері результату до вигляду клієнтської про­грами. Якщо серед передаваних пара­метрів в операторі виклику виявилися не­релевантні типи даних, то здійснюється пряме і зворотне їх перетворення засобами МП або стандарту.

До засобів перетворення дан­их і їх форматів відносяться:

– стандарти кодування даних (XDR – eXternal Data Representation, CDR – Common Representation Data, NDR – Net Data Representation, XML і методи їх перетворення;

– механізми звертання компо­нентів один до одного;

– мови опису інтерфейсів компонентів – RPC, IDL і RMI для пере­дачі даних між різними компонен­тами.

На кожній платформі комп'ютера використовуються угоди щодо кодування символів, про формати цілих чисел і чисел з плаваючою крапкою (наприклад, IEEE, VAX та ін.). При представленні цілих ти­пів, як правило, використовується додатковий код, а для типів float і double – стандарт ANSI / IEEE і ін. .

Порядок розташування байтів залежить від структури платформи (Big Endian або Little Endian) і встановлюється від старшого до молодшого байта або від молодшого байта до старшого. Процесори ULTRASPARC і POWERPC підтримують обидві можливості. При передачі даних з однієї платформи на іншу враховується можливе неспівпадіння порядку байтів. Маршалінг даних підтримується декількома стандартами які наведені далі.

XDR–стандарт містить мову опи­су структур даних довільної складності і засобу перетворення даних, що передаються на платформи (Sun, VAX, IBM і ін.). Програми в лю­бій МП можуть використовувати дані в XDR–форматі з урахуванням того, що компілятори вирівнюють їх в пам'яті комп`ютеру по-різному.

У XDR–стандарті цілі числа з порядком "від молодшого" приводяться до порядку байтів «від старшого» і назад. Перетворення даних – кодування (code) або декодування (decode) – дан­их виконується за допомогою XDR–проце­дур. Кодування – це перетворення з локальної виду в XDR–представлення і запис в XDR–блок. Декодування – це зчитування даних з XDR–блока і перетворення в локальне представлення заданої платформи.

Вирівнювання даних полягає в розміщенні значень базових типів з ад­реса, кратного (2, 4, 8, 16) по кордону з найбільшою довжиною (наприклад, 16). Системні процедури оптимізують розташування полів пам'яті під складні структури даних і перетворять їх до формату приймаючої платформи. Оброблені дані декодуються у відповідь до вигляду формату платформи що їх відправила.

CDR–стандарт забезпечує перетворення даних у формати передаючої і тієї що приймає платформ в середовищі CORBA. Маршалі даних виконується інтерпретатором TypeCode і броке­ром ORB. Процедури перетворення складних типів включають:

– додаткові коди для пред­ставлення цілих чисел і чисел з плаваючою крапкою (стандарт ANSI / IEEE);

– схему вирівнювання значень базових типів в середовищі компілятора;

– базові типи (signed і unsigned) мови IDL, а також плаваючий тип подвій­ної точності та ін.

Перетворення даних здійснюється процедурами encoder (.) і decoder (.) інтерпретатора TypeCode за допомогою базових примітивів вирівнювання ін­формації і розміщення її в буфер. Для складного типа обчислюється розмір і межі вирівнювання, виконується їх розташування в таблиці TCKind з індексами значень, яка використовується при ініціалізації брокера ORB.

ХМL–стандарт усуває неоднорідність у взаємозв'язках компонентів в різних МП за допомогою XML–формату даних. Він враховує різні платформи і середовища (CORBA, DCOM, JAVA та ін.), які мають в своєму складі функ­ції, аналогічні XML. Цей стандарт має різну системну підтримку: браузер – Internet Explorer для візуаліза­ції XML–документів, об'єктна модель DOM (Document Object Model) для відо­браження XML–документів і інтерфейсу IDL в системі CORBA.

Тексти в XML описуються у форматі ASCII, що дає можливість більш ефективно застосовувати їх при обміні даними і кодуванні типів даних за допомогою файлових форматів. Перехід програмної системи до XML–стандарту передбачає пере форматування даних у формат XML і назад.

Таким чином, XML–мова дозволяє представляти об'єкти для різних об'єктних моделей на єдиній концептуальній, синтаксичній і семантичній основі. Вона не залежить від платформи і середовища взаємодії, має стандартні методи і засоби (XML–парсери, DOM–інтерфейси, XSL–відображення XML в HTML та ін.).

У системі JAVA реалізований новий підхід до забезпечення взаємодії різних типів компонентів, заснований на механізмі видаленого методу RMI, який доповнює мову JAVA стандартною моделлю EJB (Enterprise Java Beans) компанії SUN. До неї підключені класи мови JAVA, визначення їх атрибутів, параметрів середовища і властивостей групування компонентів в прикладну програму для виконання на віртуальній машині JVM. Механізм розгортання JAVA-компонентів типа beans на сервері реалізований для програм у вихідній мові в середовищі моделі EJB.

Для реалізації і повторного використання компонентів типа beans в системі розроблені наступні шаблони в мові Java for Forte:

– Beans для створення нового компонента і формування каркаса компонента з простими властивостями і можливістю автоматичної зміни цих властивостей;

– BeanInfo для інтеграції beans компонентів і забезпечення взаємодії;

– Customizer для створення панелі, на якій розміщуються елементи, які з часом можна використовувати для управління конфігурацією beans компонентів;

– Property Editor для створення класу, який використовується під час проектування і редагування властивостей beans компонентів.

Система забезпечує зв'язок мов Java і C++, що заснований на перетворенні Java класів, бібліотеці класів С++ і мові опису інтерфейсу Java Native Interface. Основа взаємодії компонентів в цих мовах – апарат встановлення відповідності класу інтерфейсу в С++ з Java-класом інтерфейсу. Транслятор С++ продукує Java-проксі в С++ клас, результат якого - код Java–С++ є інтероперабельним.

Реалізація системи конвертації релевантних типів даних між різномовними компонентами (Java С++, С++ Java і ін.) ґрунтується на додаткових описах компонентів, відповідних доопрацюваннях компіляторів з врахуванням цих МП і особливостей платформ розташування компонентів.


Читайте також:

  1. Cisco Packet Tracer - Знайомство з програмою. Інтерфейс
  2. I етап. Аналіз впливу типів ринку на цінову політику.
  3. I. Введення в розробку програмного забезпечення
  4. I. Загальна характеристика політичної та правової думки античної Греції.
  5. II. Вимоги до складання паспорта бюджетної програми
  6. II. ВИРОБНИЧА ХАРАКТЕРИСТИКА ПРОФЕСІЇ
  7. II. Із програм для 11 класу
  8. II. Морфофункціональна характеристика відділів головного мозку
  9. II. ПРОГРАМА КУРСУ
  10. II.1 Програмне забезпечення
  11. III. Етапи розробки програмного забезпечення
  12. III. Навчально-програмний етап.




Переглядів: 1816

<== попередня сторінка | наступна сторінка ==>
Семантичні аспекти взаємодії різнорідних програм | Фундаментальні і загальні типи даних

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

 

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.007 сек.