Deklarativní a imperativní programování jsou dvě běžná paradigmata programování. klíčový rozdíl mezi deklarativním a imperativním programováním je to Deklarativní programování se zaměřuje na to, čeho by měl program dosáhnout, zatímco imperativní programování se zaměřuje na to, jak by program měl dosáhnout výsledku.
Programovací paradigma se používá pro klasifikaci programovacího jazyka v závislosti na dané funkci. To také umožňuje sledovat určitý vzor nebo styl vyřešit konkrétní problém.
1. Přehled a klíčový rozdíl
2. Co je deklarativní programování
3. Co je to imperativní programování
4. Porovnání bok po boku - deklarativní vs. imperativní programování v tabulkové formě
5. Shrnutí
Deklarativní programování lze vysvětlit pomocí scénáře reálného světa. Předpokládejme, že uživatel musí zkontrolovat nové e-maily. Jednou z metod je povolení oznámení doručené pošty. Uživatel musí oznámení povolit pouze jednou a pokaždé, když přijde nový e-mail, obdrží oznámení automaticky. Deklarativní programování je podobné. Poskytuje jednoduchost. Deklarativní programování vyjadřuje požadovaný výsledek. Vysvětluje logiku výpočtu, aniž by popisoval tok řízení.
Obrázek 01: Programovací paradigmy
Příklad deklarativního programování je následující. Jedná se o vynásobení čísel pole konstantou a jejich uložení do nového pole.
var čísla = [1,2,3];
var newnumbers = čísla.map (funkce (číslo)
zpětná čísla * 5;
);
Console.log (noviny);
Ve výše uvedeném příkladu 'map' dává pokyny pro opakování každé položky v poli a vyvolání funkce zpětného volání pro každou položku a pro uložení návratové hodnoty do nového pole. Výsledkem bude výstup 5,10,15. V tomto programu je hlavním cílem vynásobení čísel 5 dosaženo pomocí funkce mapy. Prochází jednotlivými prvky a pomocí funkce zpětného volání vypočítá a uloží hodnoty do nového pole. Není nutné poskytovat všechny kroky. Hlavní důraz je kladen na to, čeho by mělo být dosaženo.
Naléhavé programování lze vysvětlit pomocí scénáře reálného světa jako dříve. Chcete-li zkontrolovat nové e-maily, může se uživatel přihlásit k Gmailu a pokračovat v obnovování stránky a kontrolovat, zda dostal nové e-maily nebo ne. To je podobné imperativnímu programování. Vysvětluje každý jednotlivý krok k dosažení výsledku. Pro vyjádření změn ve stavu programu používá příkazy.
Násobení prvků pole konstantou a ukládání hodnot do nového pole v imperativním programování je následující.
var čísla = [1,2,3];
var newnumbers = [];
pro (int i = 0; i< numbers.length ; i++)
newnumbers.push (čísla [i] * 5);
Console.log (noviny);
Ve výše uvedeném příkladu jsou čísla pole. Při procházení smyčkou je každé číslo vynásobeno 5 a přidáno do pole novinek. Po skončení smyčky se vytiskne obsah novinek, které jsou 5,10,15.
Lze pozorovat, že imperativní styl poskytuje všechny kroky k dosažení tohoto úkolu. Vyjadřuje, jak iterovat pomocí pole pomocí proměnné čítače 'i', kolikrát iterovat před vystoupením ze smyčky a jak vložit vypočtené hodnoty do nových polí atd..
Stejný problém byl vyřešen pomocí deklarativního a imperativního programování.
Deklarativní vs. imperativní programování | |
Deklarativní programování je programovací paradigma, které vyjadřuje logiku výpočtu, aniž by popisovalo jeho kontrolní tok. | Imperativní programování je programovací paradigma, které používá příkazy, které mění stav programu. |
Hlavní zaměření | |
Deklarativní programování se zaměřuje na to, čeho by měl program dosáhnout. | Imperativní programování se zaměřuje na to, jak by měl program dosáhnout výsledku. |
Flexibilita | |
Deklarativní programování poskytuje menší flexibilitu. | Naléhavé programování poskytuje větší flexibilitu. |
Složitost | |
Deklarativní programování program zjednodušuje. | Naléhavé programování může zvýšit složitost programu. |
Kategorizace | |
Funkční, logické a dotazovací programování spadá do deklarativního programování. | Procedurální a objektově orientované programování spadá do imperativního programování. |
Tento článek pojednává o rozdílu mezi dvěma hlavními paradigmaty programování, které jsou deklarativní a imperativní. Rozdíl mezi deklarativním a imperativním programováním spočívá v tom, že deklarativní programování se zaměřuje na to, čeho by měl program dosáhnout, zatímco imperativní programování se zaměřuje na to, jak by program měl dosáhnout výsledku.
1. „Deklarativní programování“. Wikipedia, Wikimedia Foundation, 3. dubna 2018. K dispozici zde
2. „Imperativní programování“. Wikipedia, Wikimedia Foundation, 3. dubna 2018. K dispozici zde
3.Lekce 17 - Imperativní vs. deklarativní programování, Sam Nxstack, 11. dubna 2017. K dispozici zde