Декларативне та імперативне програмування - це дві загальні парадигми програмування. The ключова різниця між декларативним та імперативним програмуванням - це те, що Декларативне програмування фокусується на тому, що має виконати програма, тоді як імперативне програмування фокусується на тому, як програма має досягти результату.
Парадигма програмування використовується для класифікації мови програмування залежно від функції. Це також дозволяє дотримуватися певного шаблону чи стилю для вирішення певної проблеми.
1. Огляд та ключові відмінності
2. Що таке декларативне програмування
3. Що таке імперативне програмування
4. Поплечне порівняння - декларативне та імперативне програмування у табличній формі
5. Підсумок
Декларативне програмування можна пояснити за допомогою реального сценарію. Припустимо, що користувачеві потрібно перевірити наявність нових листів. Один із способів - це включення сповіщень у вхідні. Користувач повинен увімкнути сповіщення лише один раз, і кожного разу, коли надходить новий електронний лист, він отримує сповіщення автоматично. Декларативне програмування подібне до цього. Це забезпечує простоту. Декларативне програмування виражає необхідний результат. Це пояснює логіку обчислення без опису керуючого потоку.
Малюнок 01: Парадигми програмування
Приклад декларативного програмування такий. Це множити числа масиву на постійні і зберігати їх у новий масив.
вар числа = [1,2,3];
var newnumbers = numbers.map (функція (число)
зворотні номери * 5;
);
Console.log (newnumbers);
У наведеному вище прикладі 'map' дає вказівки щодо повторення кожного елемента в масиві та виклику функції зворотного виклику для кожного елемента та збереження значення повернення до нового масиву. Це дасть вихід 5,10,15. У цій програмі основна мета множення чисел на 5 досягається за допомогою функції карти. Він буде проходити через кожен елемент і використовувати функцію зворотного дзвінка для обчислення та збереження значень у новому масиві. Надання всіх кроків не потрібно. Основна увага приділяється тому, що слід досягти.
Імперативне програмування можна пояснити, використовуючи сценарій у реальному світі, як і раніше. Щоб перевірити нові електронні листи, користувач може увійти в gmail та продовжувати оновлювати сторінку, щоб перевірити, отримав він нові електронні листи чи ні. Це схоже на імперативне програмування. У ній пояснюється кожен крок, що займається досягненням результату. Він використовує заяви для вираження змін у програмному стані.
Помноження елементів масиву на постійну і збереження значень до нового масиву в імперативному програмуванні полягає в наступному.
вар числа = [1,2,3];
var newnumbers = [];
for (int i = 0; i< numbers.length ; i++)
newnumbers.push (числа [i] * 5);
Console.log (newnumbers);
У наведеному вище прикладі числа - це масив. Проходячи цикл, кожне число множать на 5 і додають до масиву нечисленних чисел. Після закінчення циклу буде виведено вміст нових чисел, які становлять 5,10,15.
Можна помітити, що імперативний стиль передбачає всі кроки для досягнення поставленого завдання. Він виражає, як повторити масив за допомогою змінної лічильника 'я', скільки разів повторити, перш ніж вийти з циклу, і як вставити обчислені значення до нових масивів тощо..
Ця ж проблема була вирішена за допомогою декларативного та імперативного програмування.
Декларативне проти імперативного програмування | |
Декларативне програмування - парадигма програмування, яка виражає логіку обчислення, не описуючи його керуючого потоку. | Імперативне програмування - це парадигма програмування, яка використовує оператори, що змінюють стан програми. |
Основний фокус | |
Декларативне програмування фокусується на тому, що програма повинна виконати. | Імперативне програмування фокусується на тому, як програма повинна досягти результату. |
Гнучкість | |
Декларативне програмування забезпечує меншу гнучкість. | Імперативне програмування забезпечує більшу гнучкість. |
Складність | |
Декларативне програмування спрощує програму. | Імперативне програмування може збільшити складність програми. |
Категоризація | |
Функціональне, логічне, запитне програмування підпадає під декларативне програмування. | Процедурне та об’єктно-орієнтоване програмування підпадає під імперативне програмування. |
У цій статті розглянуто відмінність двох основних парадигм програмування, які є декларативним та імперативним програмуванням. Різниця між декларативним та імперативним програмуванням полягає в тому, що Декларативне програмування фокусується на тому, що програма повинна досягти, тоді як імперативне програмування фокусується на тому, як програма повинна досягти результату.
1. "Декларативне програмування". Wikipedia, Фонд Вікімедіа, 3 квітня 2018. Доступний тут
2. «Імперативне програмування». Wikipedia, Фонд Вікімедіа, 3 квітня 2018. Доступний тут
3. Лекція 17 - Імператив проти декларативного програмування, Сем Nxstack, 11 квітня 2017 р. Доступний тут