Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Базові парадигми програмування

Поиск

Слово парадигма грецького походження означає спосіб міркувань, дій або концепцій в певній галузі знань. В останні десятиліття, починаючи з 1979 року, коли американський вчений Р.Флойд опублікував статтю “Paradigms of Programming”, термін парадигми надто часто вживається в програмуванні, а тому варто зупинитися на ньому окремо.

Поняття програми істотно залежить від її виконавця. Так речення “знайдіть корені квадратного рівняння ” служить прикладом програми, виконавцем якої може бути учень або студент. Причому різні виконавці виконають цю програму по-різному: один, користуючись теоремою Вієта, інший через дискримінант. Це приклад декларативної (описової) парадигми. Програма відповідає на питання що? — що шукати? що будувати? що рахувати? В той же час вибір відповіді на питання як? залишається у межах компетенції виконавця.

Характерну особливість програми можна визначити як імперативність: “спочатку роби одне, а потім інше”. Вона служить прикладом імперативної (наказової) парадигми програмування. Як правило, імперативна парадигма передбачає менш кваліфікованого виконавця. Відповідно більша відповідальність лягає на програміста, адже він повинен дати більш детальний рецепт розв’язування задачі. Декларативне програмування — це щось на зразок скатертини-самобранки, тоді як імперативне потребує майстерності Попелюшки.

Поділ світу програмування на що? і як? відображає також природній перебіг процесу розв’язування задач.

· Спочатку визначаємося з тим, що треба зробити — декларативна програма.

· Потім з’ясовуємо наявність виконавця, здатного нас зрозуміти.

· Далі оцінюємо його характеристики та порівнюємо їх з поставленими вимогами.

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

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

Всередині кожної з двох основних парадигм виділяють парадигми менші.

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

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

Підкреслимо, що парадигма програмування — це спосіб мислення розробника програми. Мова програмування може підтримувати або не підтримувати ту чи іншу парадигму. В першому випадку застосування парадигми стає зручним, тобто простим, безпечним і ефективним. Ми розглянемо три основних наказових парадигми — процедурне, об’єктне (модульне) і об’єктно-орієнтоване (ієрархічне) програмування і одну допоміжну — узагальнене програмування. Наприклад, всіі вони підтримуються мовою програмування С++, яка розвинулася з мови процедурного програмування С.

Огляд поширених мов програмування і відповідних парадигм подано на наступному рисунку:

Процедурне програмування

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

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

Алгоритми в процедурних мовах програмування представляю­ться як композиції операторів присвоювання, що змінюють стани пам’яті. В процесі розвитку процедурної парадигми ще в 60-70-х роках з’ясувалось, що всі різновиди композицій зрештою зводяться до чотирьох основних: присвоювання, послідовної композиції, умов­ного оператора та умовного циклу. Це призвело до відкриття Глушковим В. М. алгебри алгоритмів, яка лягла в основу структурно­го програмування. Кожна процедурна програма визначає деяке часткове перетворення на множині станів пам’яті.

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

Розглянемо коротко семантичні проблеми для процедурних (імперативних) програм.



Поделиться:


Последнее изменение этой страницы: 2016-09-20; просмотров: 457; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.119.248.214 (0.008 с.)