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

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

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

• визначення порядку виконання операцій;

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

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

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

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

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

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

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

• необхідністю явного управління пам'яттю, зокрема описом змінних;

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

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

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

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

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

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