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

Існують дві парадигми програмування: імперативна і декларативна. Основний (традиційної) парадигмою програмування є імперативне (процедурне) програмування. В рамках імперативної парадигми розглядається клас мов програмування, в яких програма явно вказує спосіб отримання результата͵ не визначаючи що очікуваних властивостей результату. Процедура отримання результату має вигляд послідовності операцій. Звідси випливають характерні риси імперативною програми:

‣‣‣ вказівку логіки управління в програмі;

‣‣‣ определ ?? ення порядку виконання операцій;

‣‣‣ наявність операторів присвоювання, що виконують руйнівну присвоювання.

Імперативна парадигма заснована на''фон-неймановской'' обчислювальної моделі, основними параметрами якої є:

‣‣‣ програма складається з набору команд, які виконуються послідовно;

‣‣‣ зазначені області пам'яті (концепція змінних як областей пам'яті, до яких можна звертатися по імені).

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

Реалізація програми зводиться до послідовного виконання операторів з метою перетворення вихідного стану пам'яті, тобто значень вихідних даних, в заключне, тобто в результати. Τᴀᴋᴎᴍ ᴏϬᴩᴀᴈᴏᴍ, з точки зору програміста є програма і пам'ять, причому перша послідовно оновлює вміст останньої.

Імперативні мови програмування характеризуються такими особливостями:

‣‣‣ вкрай важливо стю явного управління пам'яттю, зокрема описом змінних;

‣‣‣ малої придатністю для символьних обчислень;

‣‣‣ відсутністю суворої математичної основи;

‣‣‣ високою ефективністю реалізації на традиційних ЕОМ.

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

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

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

Схожі статті