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


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


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


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


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


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


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


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


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


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



Алгоритмічні алгебри

Під час конструювання алгоритмів програмісти керуються в основному інтуїтивним підходом, не замислюючись над тим, чи утворюють певну систему виконувані ними операції, проте така система є, вона формально описана і називається алгоритмічною алгеброю. Наразі розроблено кілька алгоритмічних алгебр, найвідомішими з яких є алгебра Дейкстри, алгебра схем Янова та алгоритміка програм, досліджена у працях В.М. Глушкова і Г.О. Цейтліна.

Дослідження і побудова алгебри алгоритмів або алгоритмічної алгебри почалося з проектування логічних структур ЕОМ під керівництвом академіка В.М.Глушкова. Як результат була створена теорія систем алгоритмічних алгебр (САА), що потім Г.О.Цейтліним була покладена в основу узагальненої теорії структурованих схем алгоритмів і програм, названою ним алгоритмікою [30].

Алгоритміка програм призначена для побудови послідовних і паралельних програм зі структурних схем з використанням апарату формальних алгебраїчних перетворень і канонічних форм опису логічних і операторних виразів. Її основу становлять САА, розширені формалізмами для зображення логічних умов виконання паралельних програм, а також методами символьної мультиобробки [30, 31].

Основними поняттями алгебри алгоритмів є:

– операції над множинами, булеві операції, предикати, функції й оператори;

– бінарні і n-арні відношення, еквівалентність, частково і цілком упорядковані множини;

– графи-схеми й операції над графовими структурами;

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

– методи синтаксичного аналізу структурних програм і символьна обробка.

Об'єкти алгоритміки – моделі алгоритмів і програм, що подаються у вигляді схем. Алгоритміка базується на комп'ютерній алгебрі, логіці і використовується для формального опису алгоритмів в МП.

У рамках алгоритміки розроблено спеціальні інструментальні засоби реалізації алгоритмів програм, що використовують сучасні об'єктно-орієнтовані засоби і метод моделювання UML. Цим забезпечується практичне застосування розробленої теорії алгоритміки у реалізації прикладних задач, починаючи з їхньої постановки, формування вимог і розробки алгоритмів і закінчуючи одержанням програм, що розв’язують ці задачі.

Алгебра алгоритмів.Алгебра алгоритмів АА = {A, W}, як і будь-яка алгебра, — це основа А і сигнатура W операцій з елементами цієї основи. За допомогою операції сигнатури можна додати довільний елемент q Î AА. Це називається системоюутворювальної алгебри.

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

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

В алгебрі алгоритмів використовується алгебра множин, тобто елементи множини й операції над ними (об'єднання, перетину, доповнення і ін.). Вводиться також поняття універсуму – множини операцій постановки і розв’язання деякої задачі [30].

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

Послідовне виконання операторів А і В записується у вигляді композиції А*У; альтернативне виконання операторів А и В (u (А, У)) означає, якщо u – істинне, то виконується А, інакше В; цикл (u (А, У))виконується, поки не стане істинною умова u (u ­– логічна змінна).

За допомогою цих елементарних конструкцій будується більш складна схема P алгоритму:

P ::={ [u1] А1},

А1 ::= { [u2] А2 * D},

А2 ::= А3 * C,

А3 ::= { [u] А, B},

u ::= u2 Ù u1.

Здійснивши суперпозицію шляхом згортання даної схеми алгоритму P, одержуємо таку схему:

P ::= {[ u1]{ [u2] ( [u2 Ù u1] А, У ) * З }* D}.

Важливим показником можливостей алгоритміки є проведений порівняльний аналіз алгебри алгоритміки з відомими алгебрами. Дамо короткі пояснення алгебри Дейкстри, Янова та ін.

Алгебра Дейкстри АД = {АСС, L(2), СИГН} – двохосновна алгебра, елементами якої є множина САА операторів, зображених структурними блок-схемами, множина L(2) булевих функцій у сигнатурі СИГН, в яку входять операції диз’юнкції, кон’юнкції і суперечності, що набувають значення з L(2). За допомогою спеціально розроблених механізмів перетворення АД на алгебру алгоритміки встановлено зв'язок між альтернативою і циклом за формулою {[u] А} = ([u] Е, А * {[u] А}), що входить у СИГН. В АД використовуються похідні операції, які можуть бути отримані в наслідок суперпозиції основних операцій і констант.

Операція фільтрації Ф (u) = {[u] Е, N}у АД зображена суперпозицією тотожного Е для невизначених N операторів і альтернативи в алгебрі алгоритміки, де N – фільтр дозволу виконання операцій обчислень.

Оператор циклу while doтакож представлений суперпозицією операцій композиції і циклу в алгебрі алгоритміки.

Алгебра схем ЯноваАЯ =<{AHC, L(2)}; CИГН>, де АНС – сукупність неструктурних схем, L(2) – сукупність різних булевих функцій, СИГН – сигнатура з композиції А*В і операція неструктурного переходу P(u, F), а також операції диз'юнкції, кон’юнкції і суперечності. АЯ містить у собі операції побудови неструктурних логічних схем програм.

Схема Янова складається з предикатних символів множини P(p1, p2,…,), операторних символів множини A{a1, a2,…} і графа переходів. Оператор у даній алгебрі – це пари A{p}, що складається із символів множини А и предикатних символів p. Граф переходу – це орієнтований граф, у вершинах якого розміщуються перетворювачі, розпізнавачі й один оператор зупинки. Дуги графа задаються стрілками і позначаються знаками + і –. Дуги, що виходять з розпізнавача, розрізняються і називаються відповідно плюс-стрілка і мінус–стрілка. Перетворювач має одного нащадка, розпізнавач – двох. Одна вершина в графі переходу зветься вхідною і помічається вхідною стрілкою. Також є вершина зупинення, яка не має нащадків. Кожен розпізнавач містить у собі умови виконання схеми. Перетворювач обробляє оператори, що вміщають логічні змінні, що належать множині (p1, p2,…) [31].

Кожна схема АЯ відзначається великою складністю, вимагає серйозного перетворення при переході до задання програми послідовністю дій, умов переходу і безумовного переходу. У праці [30] розроблена теорія інтерпретації схем Янова і доведено еквівалентність цих схем і операторних схем алгебри алгоритміки.

Для зображення схеми Янова апаратом алгебри алгоритміки сигнатура операцій АЯ вводяться композиції А* В і операція умовного переходу, що залежно від умови u виконує перехід до наступних операторів або до оператора, позначеного міткою (типу goto). Умовний перехід трактується як бінарна операція P (u, F), що залежить від умови u і розміток схеми F. Крім того, виконується заміна альтернативи і циклу типу while do. Внаслідок виконання бінарних операцій отримується нова схема F’, у якій встановлені бінарні операції P(u) замість мітки і булевих операцій кон’юнкції і суперечності. Еквівалентність операцій перетворення доводить правильність переходу до неструктурного подання програм.

Система алгебр ГлушковаАГ= {ОП, УМ, СИГН}, де ОП – множина операторів, що входять у сигнатуру СИГН, і УМ – множина логічних умов, визначених на інформаційній множині ІМ.

Сигнатура СИГН = {СИГНад È Прогн.}, де СИГНад – сигнатура операцій Дейкстри, Прогн. – операція прогнозування. Сигнатура САА містить у собі операції алгебри АД, узагальнену тризначну булеву операцію і операцію прогнозування (ліве множення умови на оператор u = (А* u’) з породженням предиката u = УС такого, що u(m) = u’(м'), м' = А(m), А Î ОП). ИМ – множина оброблюваних даних за операціями з множин ОП і УС. Сутність операції прогнозування полягає в перевірці умови u у стані m оператора А і визначення умови u’, обчисленої в стані м' після виконання оператора А. Дана алгебра орієнтована на аналітичну форму подання алгоритмів і оптимізацію алгоритмів за вибраними критеріями.

Алгебра алгоритміки і прикладні підалгебри. Алгебру алгоритміки розширено Г.О. Цейтліним дворівневою алгебраїчною системою і механізмами абстрактного опису даних (класами алгоритмів). Під багатоосновною алгоритмічною системою (БАС) розуміють систему S ={{Di÷ iÎ I }; СИГН0 , СИГНn }, де Di – основи або сорти, СИГН0 , СИГНn – сукупності операцій і предикатів, визначених на Di . Якщо вони порожні, то визначаються багатоосновні моделі – алгебри. Якщо сорти інтерпретуються як множина оброблюваних даних, то БАС є концепцію АТД у вигляді підалгебри, що широко використовується в об'єктному програмуванні. Тим самим установлено зв'язок із сучасними тенденціями розвитку програмування.

Таким чином, можна зробити висновок, що проведене зіставлення механізмів алгебри Дейкстри, алгебри схем Янова та логічних операторів Глушкова проведено засобами алгоритміки Цейтліна. Це вказує на їх однакову алгоритмічну потужність при різних засобах подання алгоритмів програм.

Практичним результатом досліджень алгебри алгоритміки є побудова оригінальних інструментальних систем проектування програм на основі сучасних засобів підтримки ООП (Rational Rose). Докладніше дана тема розглядається в [32].

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

Контрольні питання і завдання до частини 2

1. Охарактеризуйте деякі методи програмування.

2. Наведіть основні особливості і можливості об’єктно-орієнтованого програмування.

3. Які діаграми є в мові UML для візуального проектування програм?

4. Наведіть основні типи компонентів і шляхи їхнього використання.

5. Назвіть базові поняття в компонентному програмуванні.

6. Визначте основні поняття й етапи життєвого циклу у компонентному програмуванні.

7. Визначте основні елементи аспектно-орієнтованого програмування.

8. Визначте основні елементи агентного програмування.

9. Визначте об'єкти генерувального програмування і наведить призначення.

10. Що таке простір проблем і простір рішень?

11. Наведіть теоретичні методи програмування.

12. Охарактеризуйте алгебраїчне програмування.

13. Що таке алгоритміка і її алгебра?

14. Покажіть сутність переходу до інших алгебр.

 


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

  1. Елементи абстрактної алгебри
  2. Загальне визначення алгебри компонентів
  3. Закони булевої алгебри
  4. Мови як знакові системи. Природні та формальні мови. Алгоритмічні мови та мови програмування як приклади формальних мов.
  5. Основні поняття і закони алгебри логіки
  6. Поняття алгебри. Приклади алгебр
  7. Розділ 1. ЕЛЕМЕНТИ ЛІНІЙНОЇ АЛГЕБРИ
  8. Розділ 2. АНАЛІТИЧНА ГЕОМЕТРІЯ І ЕЛЕМЕНТИ ВЕКТОРНОЇ АЛГЕБРИ
  9. Співвідношення реляційної алгебри та структурованої мови запитів
  10. Тема 4. Елементи векторної алгебри
  11. Тестові завдання з лінійної алгебри




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

<== попередня сторінка | наступна сторінка ==>
Експлікативне, номінативне програмування | Список літератури до частини 2

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

  

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


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