Klíčový rozdíl – deklarativní a imperativní programování
Deklarativní a imperativní programování jsou dvě běžná programovací paradigmata. Klíčový rozdíl mezi deklarativním a imperativním programováním je 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.
Pro klasifikaci programovacího jazyka v závislosti na funkci se používá programovací paradigma. Umožňuje také následovat určitý vzor nebo styl k vyřešení konkrétního problému.
Co je deklarativní programování?
Deklarativní programování lze vysvětlit pomocí scénáře ze skutečného světa. Předpokládejme, že uživatel potřebuje kontrolovat nové e-maily. Jednou z metod je povolení oznámení doručené pošty. Uživatel musí povolit upozornění pouze jednou a pokaždé, když přijde nový e-mail, automaticky obdrží upozornění. Deklarativní programování je podobné. Poskytuje jednoduchost. Deklarativní programování vyjadřuje, jaký je požadovaný výsledek. Vysvětluje logiku výpočtu, aniž by popisoval řídicí tok.
Obrázek 01: Programovací paradigmata
Příklad deklarativního programování je následující. Jde o vynásobení čísel pole konstantou a jejich uložení do nového pole.
var čísla=[1, 2, 3];
var newnumbers=numbers.map(function(number){
zpáteční čísla5;
});
Console.log(newnumbers);
Ve výše uvedeném příkladu „mapa“dává pokyny k iteraci každé položky v poli a vyvolání funkce zpětného volání pro každou položku a uložení návratové hodnoty do nového pole. To dá výstup 5, 10, 15. V tomto programu je hlavní cíl násobení čísel 5 splněn pomocí funkce mapy. Projde každý prvek a použije funkci zpětného volání k výpočtu a uložení hodnot do nového pole. Není nutné poskytnout všechny kroky. Hlavní důraz je kladen na to, čeho by mělo být dosaženo.
Co je to imperativní programování?
Imperativní 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 do gmailu a průběžně obnovovat stránku, aby zkontroloval, zda dostal nové e-maily nebo ne. To je podobné imperativnímu programování. Vysvětluje každý krok k dosažení výsledku. Používá příkazy k vyjádření změn ve stavu programu.
Násobení prvků pole konstantou a uložení hodnot do nového pole v imperativním programování je následující.
var čísla=[1, 2, 3];
var newnumbers=;
for(int i=0; i< čísla.délka; i++) {
newnumbers.push(čísla5);
}
Console.log(newnumbers);
Ve výše uvedeném příkladu jsou čísla pole. Při průchodu smyčkou je každé číslo vynásobeno 5 a přidáno do pole newnumbers. Po skončení cyklu se vytiskne obsah nových čísel, která jsou 5, 10, 15.
Je možné pozorovat, že imperativní styl poskytuje všechny kroky k dosažení úkolu. Vyjadřuje, jak iterovat polem pomocí proměnné čítače „i“, kolikrát iterovat, než se dostaneme ze smyčky a jak vložit vypočítané hodnoty do nových polí atd.
Stejný problém byl vyřešen pomocí deklarativního a imperativního programování.
Jaký je rozdíl mezi deklarativním a imperativním programováním?
Deklarativní vs imperativní programování |
|
Deklarativní programování je programovací paradigma, které vyjadřuje logiku výpočtu, aniž by popisoval jeho řídicí 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 má program dosáhnout výsledku. |
Flexibilita | |
Deklarativní programování poskytuje menší flexibilitu. | Imperativní programování poskytuje větší flexibilitu. |
Složitost | |
Deklarativní programování zjednodušuje program. | Imperativní 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í. |
Shrnutí – deklarativní vs imperativní programování
Tento článek pojednával o rozdílu mezi dvěma hlavními programovacími paradigmaty, kterými jsou deklarativní a imperativní programování. Rozdíl mezi deklarativním a imperativním programováním je 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.