Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
NikitchenkoNEWNEW.doc
Скачиваний:
26
Добавлен:
08.11.2019
Размер:
2.99 Mб
Скачать

2.4.2. Пентада основних програмних понять

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

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

Y=синтез (теза: функція, антитеза: ім’я функції)

З тріади розвитку випливає, що ім’я функції є діалектичним запереченням функції, а Y – діалектичним запереченням імені функції, тобто Y є заперечення заперечення функції. Говорячи більш просто, маємо, що Y поводиться як функція (з цим поняттям працюють як із функціями), але також Y має певний зв’язок з іменами функцій та пов’язаним із ними функціями.

Аналогічно тому, як функції у програмній тріаді є функціями над даними, цей новий об'єкт буде функцією над функціями, що мають імена (іменованими функціями). Такі об'єкти називаються композиціями функцій. Отже, з математичної точки зору композиції – це оператори (операції над функціями). Композиції і є новим поняттям Y. У композиціях операція іменування (денотації) повторює себе багато разів, тому що кожний новий аргумент композиції є новим набором іменованих функцій. Також і аплікація повторюється на новому рівні як застосування композицій до іменованих функцій. Отже, композиції розкривають структури функцій та з змістовної точки зору є засобами побудови функцій (програм). На новому рівні абстракції можна сформулювати наступний принцип [10].

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

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

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

Z =синтез (теза: ім’я функції, антитеза: композиція)

Нові об'єкти із Z, які виникають, за своєю суттю є складними іменами, що описують функції. Такі об'єкти назвемо дескрипціями. Дескрипції фактично є текстами програм. Це дозволяє сформулювати наступний принцип.

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

Відзначимо етимологічну близькість терміна «дескрипції» терміну «програма». Обидва слова походять від дієслова «писати, малювати», тільки слово «програма» походить від грецького, а «дескрипція» – від латинського слова.

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

У процесі розвитку поняття програми були введені п’ять програмних понять: дане – функція – ім’я функції – композиція – дескрипція. Ці п’ять програмних понять описують на абстрактному рівні основні властивості програм. Будемо називати ці поняття з їх відношеннями пентадою основних програмних понять (рис. 2.9).

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

В пентаді чітко просліджуються три напрямки (три програмні аспекти):

  • програмний аспект, що пов’язує дані, функції та композиції, який називають семантичним аспектом;

  • програмний аспект, що пов’язує дані, імена та дескрипції, який називають синтаксичним аспектом;

  • програмний аспект, що пов’язує імена та дескрипції з функціями та композиціями, який називають денотаційним аспектом.

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

Рисунок 2.9. Пентада основних програмних понять

Введених понять достатньо для побудови багатьох моделей програм. Однак попередньо обговоримо питання про зв’язок цих понять із поняттям мови.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]