Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Сумісність і перетворення типів даних

Реферат Сумісність і перетворення типів даних





емінно як що містить дані то одного, то іншого типу. p> Поєднання даних може статися при використанні записів з варіантами, типізованих покажчиків, що містять однакову адресу, а також при явному розміщенні даних різного типу в одній області пам'яті (використовується Absolute - за ним поміщається або абсолютний адресу, або ідентифікатор раніше певної змінної). p> Абсолютний адреса - пара чисел, розділених двокрапкою - перше - сегмент, друге - зсув. p> Приклад:

B: Byte Absolute $ 0000: $ 0055;

W: Longint Absolute 128:0;

Якщо за Absolute вказано ідентифікатор змінної, то відбувається поєднання в пам'яті даних різного типу, причому перші байти внутрішнього представлення даних будуть розташовуватися по одному і тому ж абсолютному адресою:

Var

X: Real;

Y: Array [1 .. 3] Of Integer Absolute X;

Еквівалентність типів

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

Структурна еквівалентність

Два атрибуту типу T1 і T2 називаються (структурно) еквівалентними, якщо

• їх базові типи BT1 і BT2, відповідно, збігаються або

• BT1 = arr (M, N, T1 '), BT2 = arr (M, N, T2') і T1 'еквівалентний T2', або

• BT1 = rec ([F1: T11, ..., Fn: T1n]), BT2 = rec ([F1: T21, ..., Fn: T2n]) і T1i еквівалентний T2i для кожного i, або

• BT1 = ref (T1 '), BT2 = ref (T2') і T1 'еквівалентний T2' і

• припущення про еквівалентність T1 і T2 який суперечить умовам 1-4. p> Кілька дивна умова 5 пов'язане з рекурсивного типів. Воно робить ставлення структурної еквівалентності найбільшим серед відносин, що задовольняють умовами 1-4.

П р и м і р:

Нехай

T1 = rec ([info: int, next: T1])

T2 = rec ([info: int, next: T2])

Застосовуючи тільки правила 1-4, отримаємо, що T1 і T2 еквівалентні, якщо T1 і T2 еквівалентні. Правило 5 змушує зробити висновок, що T1 і T2 дійсно еквівалентні (на підставі тільки правил 1-4 можна зробити і зворотний висновок).

Якщо б не було посилальних і, отже, рекурсивних типів (як у Фортрані або Алголі 60), то визначення структурної еквівалентності зводилося б до умови 1, тобто до рівності базових типів.

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

Спочатку будується праволінейная граматика:

1. Для кожного опису ідентифікатора типу, змінної або параметра declared (I, B, Inf), де Inf одно type (T), var (T) або par (T), типу T ставиться в відповідність новий нетермінал t. p> 2. Якщо нетерміналу t відповідає базовий тип arr (m, n, T1), то типу T1 ставиться в відпов...


Назад | сторінка 5 з 8 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Проектування і реалізація абстракцій типів даних
  • Реферат на тему: Проблема вибору у індивідів різного віку і типів особистостей
  • Реферат на тему: Зародження і еволюція двох типів цивілізацій
  • Реферат на тему: Типи ілюстрування значення слова в тлумачних словниках різного типу
  • Реферат на тему: Поняття про темперамент. Психологічна характеристика типів