Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Тріада основних програмних понять




Почнемо подальший розвиток з конкретизації поняття програми. Вибір цього поняття (а не поняття користувача, проблеми, процесу виконання, процесу програмування) пов’язано з тим, що це поняття є первісним щодо поняття процесу програмування, бо останнє "включає" в себе поняття проблеми і програми. Поняття програми також є первісним і для процесу виконання, що має спиратись на певне розуміння програм. Що стосується понять проблеми та користувача, то вони є більш важливими, ніж поняття програми, є визначальними для нього, але їх розгляд буде виводити нас поза сферу інформатизації. Тому доцільно починати розкриття основних понять програмування з поняття програми, яке легше піддається уточненню, ніж інші поняття проблеми, або є первісним щодо інших понять. Як же починати уточнення поняття програми? Є різні підходи до того, як це робити. Але ми почнемо з аналізу тієї тріади, в який вперше з’явилось поняття програми. Це тріада ≪користувач – проблема – програма≫. З цієї тріади ми бачимо, що поняття програми є діалектичним запереченням (антитезою) поняття проблеми, тобто програми не є проблемами, але зберігають в собі проблеми у якісь

іншій формі. В математиці об’єкти, що обчислюють нові дані на підставі

вхідних даних називають функціями, а сам процес застосування

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

прагматичності програм, оскільки вона задає спосіб використання програм користувачем.Принцип аплікативності (функціональності).На гранично

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

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

рівняння: X=синтез (теза: дане, антитеза: функція)

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



даним), але також X має певний зв’язок з функцією (містить, задає функцію).

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

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

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


 

8. Пентада основних програмних понять. Принцип композиційності. Принцип дескриптивності.

 

Останнім моментом розвитку понять в тріаді основних програмних понять було заперечення функції та перехід до імені функції, що зберігає функції за допомогою операції денотації. Для подальшого розвитку програмних понять необхідно зробити наступне заперечення, що повертає нас до поняття функції, але вже на новому рівні.Відповідно до законів розвитку це означає, що ми переходимо до нового поняття, що не є іменем (але зберігає його) і яке підпадає під поняття функції, розвиваючи його. Позначаючи це нове поняття через Y, можемо записати наступне понятійне рівняння: Y=синтез (теза: функція, антитеза: ім’я функції) З тріади розвитку випливає, що ім’я функції є діалектичним запереченням функції, а Y – діалектичним запереченням імені функції, тобто Y є заперечення заперечення функції. Говорячи більш просто, маємо, що Y поводиться як функція (з цим поняттям працюють як з функціями), але також Y має певний зв’язок з іменами функцій та пов’язаним із ними функціями. Аналогічно тому, як функції в програмній тріаді є функціями над даними, цей новий об'єкт буде функцією над функціями, що мають імена (іменованими функціями). Такі об'єкти називаються композиціями функцій. Отже, з математичної точки зору композиції – це оператори (операції над функціями). Композиції і є новим поняттям Y. У композиціях операція іменування (денотації) повторює себе багато разів, тому що кожний новий аргумент композиції є новим набором іменованих функцій. Також і аплікація повторюється на новому рівні як застосування композицій до іменованих функцій. Отже, композиції розкривають структури функцій та з змістовної точки зору є засобами побудови функцій (програм). На новому рівні абстракції можна сформулювати наступний принцип__ Принцип композиційності.Програми (функції) будуються з більш простих програм за допомогою композицій. У якості одного з наслідків цього принципу одержуємо, що повинні існувати деякі базові функції (програми), які використовуються для побудови більш складних функцій. Для того, щоб просуватися вперед необхідно зробити нове заперечення і відповідно до закону заперечення заперечення буде здійснене повернення до поняття імені функції, але вже на новому рівні, який враховує наявність композицій. Нове поняття Z задається понятійним рівнянням Z =синтез (теза: ім’я функції, антитеза: композиція) Нові об'єкти з Z, які виникають, за своєю суттю є складними іменами, що описують функції. Такі об'єкти назвемо дескрипціями. Дескрипції фактично є текстами програм. Це дозволяє сформулювати наступний принцип. Принцип дескриптивності.Програми можна представляти у вигляді дескрипцій (складних зображень), побудованих звикористанням дескрипцій більш простих програм і композицій, та які описують функції, що відображають вхідні дані в результати. Відзначимо етимологічну близькість терміна дескрипції терміну програма. Обидва слова походять від дієслова ≪писати, малювати≫,тільки слово програма походить від грецького, а дескрипція – від латинського слова. Дескрипції можуть розглядатися як імена, побудовані за допомогою більш простих імен. Правила побудови таких імен (дескрипцій) звичайно називаються граматикою. Граматика задає закони побудови правильних синтаксичних конструкцій. Стосовно предмету нашого дослідження граматика індуктивно задає правильні дескрипції (записи, зображення) на основі попередньо заданих імен базових функцій і імен (записів, зображень) композицій. Поняття дескрипції вже є досить багатим поняттям, оскільки допускається можливість виділення складових частин дескрипції та з'єднання таких частин у нову дескрипцію. Це фактично означає, що на класі дескрипцій повинні бути задані спеціальні операції, які дозволяють здійснювати таку роботу з дескрипціями. Відображення денотації для дескрипцій звичайно будуються індуктивно у відповідності зі структурою дескрипції. Індуктивні визначення дескрипцій індукують індуктивні доведення різних властивостей програм. У процесі розвитку поняття програми були введені п'ять програмних понять: дане – функція – ім'я функції – композиція – дескрипція. Ці п'ять програмних понять описують на абстрактному рівні основні властивості програм. Будемо називати ці поняття з їх відношеннями пентадою основних програмних понять поняття функції та імені відповідно. В пентаді чітко просліджуються три напрямки (три програмні аспекти): • програмний аспект, що пов’язує дані, функції та композиції, який називають семантичним аспектом, • програмний аспект, що пов’язує дані, імена та дескрипції, який називають синтаксичним аспектом, • програмний аспект, що пов’язує імена та дескрипції з функціями та композиціями, який називають денотаційним аспектом.



9. Сутнісні та семіотичні аспекти програм. Принцип підпорядкованості. Принцип семантико-синтаксичної орієнтації. Програми і мови.

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

• прагматика – це відношення між мовою і користувачем мови,

• семантика – це відношення між виразами мови та їх

значеннями (денотатами), абстраговане від користувача,

• синтаксис – це відношення між мовними виразами,

абстраговане від їх денотатів.

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

А саме, перша пентада задає чотири основних зовнішніх аспекта: • адекватнісний,

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

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

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

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

поняття програми. Використання терміна "композиційний" у назві запропонованого підходу можна пояснити кількома причинами. Серед трьох термінів: "дані", "функція" і "композиція", користувачі зацікавлені насамперед у даних і функціях. Однак, щоб зрозуміти

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

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


mylektsii.ru - Мои Лекции - 2015-2019 год. (0.006 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал