Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Підручник КНУ-4кк11.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
16 Мб
Скачать
☆

2.1.4. Формальне подання методу збирання різномовних модулів

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

Суть задачі збирання пари різномовних модулів полягає у визначенні взаємно однозначної відповідності між множиною фактичних параметрів V = {v1, v2,..., vк}, які задаються, модулю, що викликає. та відповідною множиною формальних параметрів F = {f1, f2, ..., fк} модуля, що викликається, а також у відображенні одних параметрів в інші. Якщо відображення побудувати не вдається, те завдання автоматизованого зв'язку для даної пари модулів неможливо розв'язати і ця задача повинна вирішуватися іншими методами.

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

У класі простих типів даних МП можуть бути t = b (bool), з|із| (char), i (int), r (real)) і складні типи даних t = а (array), z (record), u (union), e (enum), як комбінація простих типів даних. На їх основі побудовані алгебраїчні системи та визначені допустимі види перетворень типів даних.

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

Формально перетворення нееквівалентних типів даних в МП виконується наступними етапами.

Етап 1. Побудова операцій перетворення типів даних T = {Tt} для множини мов|язиків| програмування L = { l }=1, n.

Етап 2. Побудова відображення простих типів даних для кожної пари взаємодіючих компонентів в мовах l1 і l2, а також застосування операцій селектора S і конструктора С для відображення складних структур даних в цих мовах.

Один зі способів формалізованого перетворення типів даних є створення алгебраїчних систем для кожного типу даних Tt:

Gt = <Xt, t >,

де t – тип даних, Xt – множина значень, які можуть приймати змінні цього типу даних, t – множина операцій над цими типами даних.

Для простих і складних типів даних сучасних МП розроблені наступні класи алгебраїчних систем:

1 = {G b , Gc , Gi , Gr},

2 = {Ga , Gz , G u , Ge}

Кожен елемент класу простих і складних типів даних визначається на множині значень цих типів даних та операцій над ними:

Gt = <Xt , t >, где t = b, c, i, r, a, z, u, e.

Операціям перетворення кожного t типу даних відповідає ізоморфне відображення двох алгебраїчних систем з сумісними типами даних двох різних мов. У класі систем 1 та 2 перетворення типів даних t q для пари мов lt и lq володіє такими властивостями відображень:

1) системи Gt та Gq для мов lt та lq – ізоморфні, якщо їх типи даних q, t визначені на одній й тій же множині простих та складних типів даних;

2) між значеннями Xt та Xq типів даних t, q існує ізоморфізм, якщо множини операцій t та q вживаних для цих типів даних різні. Якщо множина  = t  q не порожня, має місце ізоморфізм двох систем G t = < Xt ,> и Gq = < Xq , >. Якщо тип даних t є рядок, а тип q – речовинне, то між множинами Xt и Xq не існує ізоморфної відповідності;

3) алгебраїчні системи Gt = Gq за потужністю повинні бути рівні, оскільки вони представлені на множині типів даних мов lt и lq.

Відображення 1), 2) зберігають лінійний порядок|лад| елементів, оскільки алгебраїчні системи є лінійно впорядкованими.

По проблемі зв'язку різномовних модулів сформульовані та доведені теореми про релевантність і правильність створення модулів–посередників [5]. До цього часу аналог доказу правильності зв'язків пар модулів в різних МП був відсутній.

Метод збирання| програмних об'єктів використовувався при реалізації:

– програмно-технологічного комплексу ПРОГРАМА–ПРОГРАМА (1987–1988гг.) по лінії КП| НТП СЭВ «ИНТЕРФЕЙС», призначеного для інтеграції програм за інтерфейсами;

– системи АПФОРС|, що автоматизує створення ППП за проектом ДКНТ СРСР;

– експертної системи, що інформує користувача про можливості Банку модулів і забезпечує підбір необхідних для застосування модулів.