Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ekzamen kozak .docx
Скачиваний:
33
Добавлен:
20.12.2018
Размер:
280.44 Кб
Скачать

10. Класифікація методологій програмування.

Методології класифікують за 3 чинниками:

  • Ядро методології

  • Топологічна специфіка

  • Реалізаційна специфіка

Ядра методологій визначаються способом опису алгоритмів . Основні ядра методологій:

  • Методологія імперативного програмування

  • Методологія функціонального програмування

  • Методологія логічного програмування

  • Методологія об’єктно - орієнтованого програмування

  • Методологія програмування в обмеженнях

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

Реалізаційна специфіка

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

Також бувають змішані методології . Вони включають об’єднання методів кількох методологій

11. Ядра методологій програмування.

  • Методологія імперативного програмування

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

Методами є

  • Метод зміни стану заключається в послідовній покроковій зміні станів

  • Метод управління потоком стану заключається в покроковому управлінні

Основним синтаксичним поняттям є оператор. Оператори поділяються на атомарні та структурні.

Мови імперативного програмування маніпулюють даними в покроковому режимі.

До мов імперативного програмування належать – Fortran, Algol, Pascal, C, ICON. Імперативне програмування найбільш придатне для вирішення задач, в яких покрокове виконання задач є природнім

  • Методологія об’єктно - орієнтованого програмування

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

Методами є

  • Метод об’єктно – орієнтованої декомпозиції заключається в виділенні об’єктів та зв’язків між ними

  • Метод абстрактних типів даних лежить в онсові інкапсуляції

  • Методи пересилки повідомлень заключається в описі поведінки системи через терміни обміну повідомлень між об’єктами

Модель обєктно-орієнтованого програмування підтримує явно тільки одну операцію – пересилку повідомлень об’єктам . Повідомлення може мати параметри і також є об’єктом. Об’єкт має набір методів обробки повідомлень та поля.

В об’єктно орієнтованому програмуванні виділяють три основних властивості

  • Інкапсуляція

  • Наслідування

  • Поліморфізм

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

Мови обєктно-орієнтованого програмування ділять на 3 групи

  • Чисті

    • Simula

    • Smalltalk

    • Beta

    • Self

    • Cecil

  • Гібридні

    • C++

    • Object Pascal

  • Урізані

    • C#

    • Java

Дана методологія є потужним засобом моделювання відношень між об’єктами практично в будь-якій предметній області

  • Методологія функціонального програмування

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

Методи:

  • Метод аплікації – програма є виразом, складеним з застосування функції до аргументів

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

  • Метод настроюваності полягає в тому, що можна легко породжувати нові програмні об’єкти по зразку, як значення існуючих виразів

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

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

До мов функціонального програмування належать – Lisp, РЕФАЛ, Scheme, FP, ML, Miranda, Standard ML, Haskell.

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

  • Методологія логічного програмування

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

Методи:

  • Одноманітності - однакове застосування механізму логічного доведення до всієї програми

  • Уніфікації – механізм співставлення із зразком для створення та декомпозиції структур даних

В логіці теорії задаються за допомогою аксіом та правил виводу

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

Мови: Prolog, Prolog II, IC-Prolog, LOGLISP, Mprolog, LCA, Concurrent prolog, T-prolog, PARLOG, LQF, LEAF, GHC, Goedel, Mercury

Клас задач майже співпадає із класом задач функціонального програмування.

  • Методологія програмування в обмеженнях

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

Методи:

  • Метод описуємої моделі обчислень – програма на мові програмування містить опис понять та задач

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

Мовами є : Sketchpad, УТОПИСТ, Thinglab , IDEAL, OPS5, Bertrand, OPL

Клас задач – задачі дослідження операцій і штучного інтелекту

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