Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

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



Приведемо цитату із тлумачного словника.

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

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

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

Pascal є прикладом мови директивного програмування (directive programming), коли розробка програми використовує процесно-орієнтовану модель, тобто намагається створити код, який певним чином впливає на дані. Активним началом при цьому підході вважається програма (код), яка повинна виконати всі необхідні дії для досягнення потрібного результатів над пасивними даними.

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

Наразі став поширеним об'єктно - орієнтований ( object oriented) підхід, що реалізовується, наприклад, мовами C++ і Java. В ньому, навпаки, первинними вважаються об’єкти (дані), які можуть активно взаємодіяти за допомогою механізму передачи повідомлень (називається також і механізмом виклику методів). Функція програміста в цьому випадку подібна ролі бога при створені Всесвіту – він повинен придумати і реалізувати такі об’єкти, взаємодія яких після старту програми приведе до досягненню необхідного кінцевого результату.

Функціональне і логічне програмування використовується мовами типу Lisp, Haskell і Prolog. Ця парадигма базується на принципово іншій трактовці поняття програми. Тут головним є точне формулювання задачі, а вибір і вживання необхідного для її алгоритму рішення покладається на виконуючу систему, а не на програміста.

Уточнимо базові парадигми з позиції синтаксису та семантики мови програмування.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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





Дата публикования: 2015-09-18; Прочитано: 3994 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...