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


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


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


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


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


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


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


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


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


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



Баові поняття стандарту з типів даних

Базові поняття стандарту GDT. На зовнішньому рівні розрізняються три наступні поняття типу даних:

– концептуальне чи абстрактне поняття, яке характеризує тип даних за його номінальним значенням або властивостями;

­– структурне поняття, яке характеризує тип даних як концептуальну утворюючи основні елементи стандартного інтерфейсу до кожного з стандартних сервісних засобів. Створення таких звернень сервісних засобів і мовних організацію його певних компонентів зі специфічними функціями;

– реалізаційне поняття, що визначається правилами подання типу даних у цьому середовищі.

Примітивні і непри­мі­тивні типи даних ґрунтуються на понятті структурної атомарності. Визначені не всі атомарні (базові) типи даних, а тільки найчастіше використовувані у МП та інтерфейсах ПС. Задані структурні нотації для специфіка­ції інших не примітивних типів даних забезпечують засоби для структурного визначення у термінах LI-типів даних стандарту.

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

Багато специфікацій сервісного програмного забезпечення або бібліотек застосувань вже стандартизовані або у найближчий час будуть прийняті як стандарти. Інтерфейси цих бібліотек часто описуються визначенням виду посилання, тобто “процедурного виклику ” кожної окремої функції або сервісного засобу з бібліотеки, як це робиться у програмі користувача, написаній на деякій стандартній мові програмування (Фортран, Кобол, Паскаль). Така специфікація інтерфейсу звичайно позначається як “<мова> звернення до <сервісний засіб>”, наприклад, “Фортран звернення до PHIGS” (ISO/IEC 9593–1:1990).

Це приводить до ситуації, коли слідом за стандартизацією нової сервісної бібліотеки необхідна стандартизація інтерфейсу звернення для кожної стандартної МП, оскільки для зручності користувачів, що застосовують сервісні засоби стандартної МП, необхідна уніфікація способів звернення до кожного сервісного пакету. Щоб уникнути цієї проблеми звернення з метою перебудови типів даних, розроблені стандарти для незалежних від мов процедур виклику з описом їхніх параметрів.

Структурне поняття типу даних характеризує його як:

– концептуально атомарний (atomic), що має неподільні значення,

– концептуально агрегатний(aggregate) має значення, які можуть розглядатись як організовані з певних компонентів типів даних із специфічними функціями.

Примітивні ТД (primitive) визначаються без посилань на інші типи даних, а згенеровані(generated) описуються як частково визначені в термінах інших типів даних. Усі примітивні ТД концептуально атомарні і тому визначаються в термінах абст­рактних понять. Деякі згенеровані типи даних концептуально атомарні, проте залежать від спе­ци­фі­кацій, які включають інші типи даних. Ці останні також визначаються у термінах їх абст­рактних понять. Чисельні типи даних можуть задавати об’єкти, які виступають як концеп­туально атомарні, але самі являються концептуально агрегатними, утворюючи колекції дос­туп­них компонентів значень. Для агрегатних типів даних в стандарті визначено набір базових структурних понять, який може рекурсивне застосовуватись для отримання простору значень згенерованого типу даних. Абстрактна семантика приписується кожному типу даних и власна структура з агрегатного значення.

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

Наприклад, тип даних Array підтримується такими МП, як Фортран і Паскаль, так що масив дійсних чисел має схожу семантику для процедур, які викликаються у цих мовах. Для порівняння лінійні оператори та списки декартових координатних точок можуть подаватися масивом дійсних чисел, але цього масиву не досить для розрізнення семантики таких значень у програмах.

Характеристичні операції. Набір характеристичних операцій виконується для заданого типу даних або для значення типу даних і відрізняє цей тип від інших, що мають ідентичний простір значень, за винятком, можливо, заміни символів. Набір характеристичних операцій генератора типів охоплює операції, які створюють значення будь-якого типу даних у резуль­таті застосування генератора типів даних. Набір відрізняє цей генератор від інших генера­торів, що створюють ідентичні простори значень з ідентичних параметричних типів даних. Такі операції необхідні для:

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

– агрегатних типів даних, які становлять композиції характеристичних операцій для генераторів типів даних з характеристичними операціями для компонентів їх типів даних.

Дані операції достатні для визначення типу даних як структури, а саме:

а) операції нульової арності, які генерують значення цього типу даних;

б) унарні операції (арності 1), які перетворюють значення цього типу даних у значення цього ж типу даних або у значення типу даних boolean;

с) бiнарні операції (арності 2), які перетворюють пари значень цього типу даних у значення цього ж типу даних або у значення типу даних boolean;

д) n-елементні операції (n-арні), які перетворюють впорядковані n-елементні групи значень, кожна з яких відноситься до певного типу даних, що може бути цим же типом або параметричним типом даних, у значення цього ж типу даних або параметричного типу даних.

У цілому, не існує унікальної колекції характеристичних операцій для певного типу даних. Одна колекція характеристичних операцій для кожного типу даних (або генератора типів), достатня для виділення цього (підсумкового) типу даних серед усіх інших з простору значень тієї ж потужності. Не зважаючи на зусилля з мінімізації колекції характеристичних операцій для кожного типу даних, поки не обгрунтовані твердження, що будь-яка вказана колекція мінімальна. Операція InOrder є характеристичною операцією і використовується для впорядкованих типів даних.

Якщо існує посимвольна заміна, яка перетворює весь простір значень одного типу даних (домен, domain) у підмножину простору значень іншого типу даних (діапазон, range) таким чином, що значення відношень і характеристичних операцій з домену типу даних зберігаються у відповідних значеннях відношень і характеристичних операцій діапазону типу даних., Якщо додаткові характеристичні операції відсутні в діапазоні даних, то два типи даних належать одній родині типів даних. Окремі члени родини розрізняються набором символів, одержуючи свої простори значень. У Стандарті набір символів для окремих членів родини типу даних описується одним або декількома значеннями, що звуться параметричними значеннями родини типу даних.

Агрегатний тип даних (aggregate datatype) – це згенерований тип даних, кожне значення якого отримано зі значень параметричних типів даних. Параметричні типи даних агрегатного типу даних або його генератор також мають назву компонента типу даних. Генератор агрегатного типу даних генерує тип даних шляхом:

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

– забезпечення набору характеристичних операцій, специфічних для генератора.

На відміну від інших згенерованих типів даних особливість агрегатного типу даних полягає у тому, що компоненти значень агрегатного значення доступні через характеристичні операції. Агрегатні значення різних типів відрізняються між собою властивостями, які характеризують відношення між компонентами типів даних і відношення між кожним компонентом і агрегатним значенням. У цьому розділі визначаються такі властивості.

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

Генеровані типи даних(generated datatypes) – це типи даних, які отримуються в результаті застосування генератора типів даних, як операції для створення нового типу з одного або декількох типів даних, а не для генерації значень. Генерований тип даних семантично залежить від різних параметричних типів даних і має власні характеристичні операції. Генерованим типом даних є агрегатний тип даних, кожне значення якого отримано зі значень параметричних типів даних і мають назву компонента типу даних. Їх значення відрізняються між собою властивостями й відношеннями між кожним компонентом і агрегатним значенням.

Стандарт включає наступні генератори типів даних: вибір (сhoice), покажчик (pointer), процедура (procedure), запис (record), набір (set), портфель (bag), послідовність (sequence), масив (array), таблиця (table) тощо.

Генератор типів даних (datatype generator) – це концептуальна операція над одним або декількома типами даних, яка створює новий тип даних (ТД). Він формує генерований чи параметричний тип даних. Згенерованим типом даних є агрегатний тип даних, кожне значення якого отримано зі значень параметричних типів даних і мають назву компонента типу даних. Їх значення відрізняються між собою властивостями і відношеннями між кожним компонентом і агрегатним значенням.

Генератор типів даних – це сполучення:

– колекції критеріїв для кількості та характеристик типів даних, над якими будуть виконані операції;

– процедури конструювання, яка, допускаючи колекції типів даних і задовольняючи цьому критерію, створює новий простір значень з просторів значень цих типів даних;

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

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

Згенеровані типи даних (generated datatypes) – це типи даних, які отримають в результаті застосування генератора типів даних, як операції для створення нового типу із одного або декількох типів даних, а не для генерації значень. Згенерований тип даних семантично залежить від різних параметричних типів даних і має власні характеристичні операції. Стандарт включає наступні генератори типів даних: вибір (сhoice), покажчик (pointer), процедура (procedure), запис (record), набір (set), портфель (bag), послідовність (sequence), масив (array), таблиця (table) тощо.

Генератор ТД оперує з загальними типами даних для створення нового типу даних, а не значеннями для генерації значень. ТД, з якими працює генератор, мають назву параметричні або компонентні ТД.

Згенерований тип даних семантично залежить від параметричних типів ТД, але має власні характеристичні операції. Важливою характеристикою усіх генераторів ТД є те, що генератор може застосовуватись до багатьох різних параметричних ТД. Генератори покажчика і процедури генерують ТД, значення яких атомарні, тоді як генератор вибору агрегатних ТД генерує ТД, значення яких дозволяють виробляти їх декомпозицію. Цей тип generated-type означає тип даних, який створюється і стає згенерованим:

generated-type = pointer-type | procedure-type | choice-type | aggregate-type .

У Стандарті визначені найпоширеніші генератори ТД, за допомогою яких застосування стандарту можуть визначати згенеровані типи даних.

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

Опис: словесний опис ТД, отриманих за допомогою генератора.

Синтаксис: синтаксичні правила для згенерованого типу даних, отриманого за допомогою генератора типу даних, включаючи ідентифікацію усіх парамет­ричних ТД, які необхідні для повної ідентифікації різних ТД.

Складові: кількість параметричних ТД і введені для них обмеження, а також параметричні значення, що використовуються генератором.

Значення: формальне визначення підсумкового простору значень.

Властивості: властивості підсумкового типу даних, які вказують їх застосовність як компонентів типу даних, визначених генератором ТД: числовий або нечисловий; наближений або точний; невпорядкований або впорядкований і, якщо впорядкований, то обмежений або необмежений.

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

Операції: характеристичні операції підсумкового ТД, які асоціюються з генератором ТД.

Опис. вибір (сhoice) генерує тип даних, що має назву ТД Вибір, кожне значення якого є окремим значенням будь-якого набору альтернативних ТД. Альтернативні ТД вибір логічно розрізняти з огляду на їх відповідність значенням іншого ТД, що має назву ознака (tag).

Синтаксис:

choice-type = "choice" "(" [ field-identifier ":" ] tag-type[ "=" discriminant ] ")"

"of" "(" alternative-list ")".

field-identifier = identifier .

tag-type = type-specifier .

discriminant = value-expression .

alternative-list = alternative {“,” alternative } [default -alternative ].

alternative = tag-value-list[ field-identifier ] ":" alternative-type .

default-alternative = "default" ":" alternative-type .

alternative-type = type-specifier .

tag-value-list = "(" select-list ")" .

select-list = select-item { "," select-item } .

select-item = value-expression | select-range .

select-range = lowerbound ".." upperbound .

lowerbound = value-expression | "*" .

upperbound = value-expression | "*" .

Значення: усі значення, які мають концептуальну форму (tag-value, alternative-value), де tag-value – це значення типу даних Ознака, яке зустрічається (явно або неявно) у деякій alternative з alternative-list і, отже, однозначно перетворюється на альтернативний тип да­них, а alternative-value становить довільне значення цього альтернативного типу даних.

Синтаксис значення:

choice-value = "(" tag-value ":" alternative-value ")" .

tag-value = independent-value .

alternative-value = independent-value .

Значення choice-value задає значення типу даних вибір. Tag-value длязначення choice-value є значенням типу даних ознаки для цього типу даних Вибір, а значення альтернативи alternative-value задає значення, що відповідає альтернативному типу даних. Специфіковане значення має концептуальну форму (tag-value, alternative-value).

Властивості: невпорядкований, точний тоді і тільки тоді, коли всі альтернативні типи даних являються точними, нечисловий.

Підтипи: будь-який тип даних Вибір, в якому тип даних ознаки є таким же або його підтипом, тип даних ознаки базового типу даних і альтернативний тип даних, що відповідає кожному значенню типу даних ознаки в підтипі, являється таким же або його підтипом, альтернативний тип відповідає цьому значенню у базовому типі даних.

Операції: Equal, Tag, Cast, Discriminant.

Discriminant(x: choice (tag-type)of(alternative-list)): tag-type єзначенням ознаки для x.

Tag.type(х: type, s: tag-type): choice (tag-type)of(alternative-list), де type – це альтерна­тивний тип даних у списку alternative-list, що відповідає значенню s, єте значення типу даних Вибір, яке має значення s ознаки і значення x альтернативи.

Cаst.type(x: choice (tag-type) of (alternative-list)): type, де type – це альтернативний тип даних у списку alternative-list, є значення type, яке являється (альтернативним) значенням x,якщо за значенням ознаки x вибирається альтернатива, для якої alternative-type являється type; інакше – невизначене значення.

Equal(x,y: choice (tag-type) з (alternative-list)): boolean є

type.Equal(Cast.type(x),Cast.type(y)),

де type – це альтернативний тип даних ви­бра­ної альтернативи, а type.Equal – це операція Equal для типу даних type, якщо Discriminant(x) і Discrminant(y) вибирають однакову альтернативу; інакше – false.

Покажчик (pointer) генерує тип даних, що зветься покажчик, кожне значення якого встановлює засоби посилання на значення іншого типу даних, специфікованого типом даних element-type. Ці значення типу даних покажчика є атомарними.

Синтаксис:

pointer-type = “pointer” “to” “(” element-type “)” .

element-type = type-specifier .

Складові: будь-який окремий ТД, специфікований як element-type.

Значення. Простір значень – це значення неспецифікованого ТД. Стан, кожне значення якого зберігає одне значення, асоційований з довільним значенням елемента ТД. Окреме значення null може належати простору значень, проте ніколи не асоціюється з жодним значенням типу даних елемента.

Синтаксис значення:

pointer-literal = “null” .

“Null” означає null-значення. Відсутня нотація для будь-якого іншого значення типу даних Покажчик.

Властивості: невпорядкований, точний, нечисловий.

Підтипи: будь-який ТД покажчик, для якого елемент типу даних – це підтип елемента ТД основного типу даних покажчик.

Операції: Equal, Dereference.

Egual(x,y:pointer(element)): boolean єtrue, якщо значення х і у ідентичні значенням неспецифікованого типу даних Стан, інакше – false.

Dereference(x:pointer(element)): element, де х ¹ null, є значенням елемента ТД, пов’язаним зі значенням х.

 


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

  1. I етап. Аналіз впливу типів ринку на цінову політику.
  2. II. Поняття соціального процесу.
  3. V. Поняття та ознаки (характеристики) злочинності
  4. А/. Поняття про судовий процес.
  5. Автоматизований банк даних (АБД).
  6. Адміністративний проступок: поняття, ознаки, види.
  7. Адміністративні правовідносини: поняття, ознаки,
  8. Адміністративні провадження: поняття, класифікація, стадії
  9. Аксіоматика простих типів даних
  10. Аксіоматика структурних і складних типів даних. Структурні типи даних.
  11. Акти застосування юридичних норм: поняття, ознаки, види.
  12. Аналіз даних засобами Excel




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

<== попередня сторінка | наступна сторінка ==>
Фундаментальні і загальні типи даних | Перебудова загальних типів даних до фундаментальних для МП

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

  

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


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