Diferența cheie – Programare declarativă vs imperativă
Programarea declarativă și imperativă sunt două paradigme comune de programare. Diferența cheie dintre programarea declarativă și imperativă este că programarea declarativă se concentrează pe ceea ce ar trebui să realizeze programul, în timp ce programarea imperativă se concentrează pe modul în care programul ar trebui să obțină rezultatul.
O paradigmă de programare este folosită pentru a clasifica un limbaj de programare în funcție de caracteristică. De asemenea, permite respectarea unui anumit model sau stil pentru a rezolva o anumită problemă.
Ce este programarea declarativă?
Programarea declarativă poate fi explicată folosind un scenariu din lumea reală. Să presupunem că utilizatorul trebuie să verifice dacă există e-mailuri noi. O metodă este activarea notificărilor primite. Utilizatorul trebuie să activeze notificările o singură dată și de fiecare dată când sosește un nou e-mail, primește o notificare automat. Programarea declarativă este similară cu aceasta. Oferă simplitate. Programarea declarativă exprimă rezultatul necesar. Acesta explică logica unui calcul fără a descrie fluxul de control.
Figura 01: Paradigme de programare
Un exemplu de programare declarativă este următorul. Este de a înmulți numerele unei matrice cu o constantă și de a le stoca într-o nouă matrice.
var numere=[1, 2, 3];
var numere noi=numere.hartă(funcție(număr){
numere de returnare5;
});
Console.log(newnumbers);
În exemplul de mai sus, „map” oferă instrucțiuni pentru a repeta fiecare element din matrice și pentru a invoca funcția de apel invers pentru fiecare articol și pentru a stoca valoarea returnată în noua matrice. Acest lucru va da ieșirea 5, 10, 15. În acest program, obiectivul principal de înmulțire a numerelor cu 5 este îndeplinit folosind funcția hartă. Acesta va parcurge fiecare element și va folosi funcția de apel invers pentru a calcula și stoca valorile în noua matrice. Nu este necesar să furnizați toți pașii. Accentul principal este pus pe ceea ce ar trebui realizat.
Ce este programarea imperativă?
Programarea imperativă poate fi explicată folosind un scenariu din lumea reală ca înainte. Pentru a verifica noile e-mailuri, utilizatorul se poate conecta la gmail și poate continua să reîmprospăteze pagina pentru a verifica dacă a primit sau nu noi e-mailuri. Acest lucru este similar cu programarea imperativă. Acesta explică fiecare pas implicat pentru a obține rezultatul. Folosește instrucțiuni pentru a exprima modificările în starea programului.
Înmulțirea elementelor matricei cu o constantă și stocarea valorilor într-o nouă matrice în programare imperativă este după cum urmează.
var numere=[1, 2, 3];
var numere noi=;
for(int i=0; i< numere.lungime; i++) {
newnumbers.push(numbers5);
}
Console.log(newnumbers);
În exemplul de mai sus, numerele sunt o matrice. Când parcurgeți bucla, fiecare număr este înmulțit cu 5 și adăugat la matricea de numere noi. După sfârșitul buclei, conținutul noilor numere va fi tipărit, care sunt 5, 10, 15.
Se poate observa că stilul imperativ oferă toți pașii pentru realizarea sarcinii. Exprimă cum să iterați prin matrice folosind variabila contor „i”, de câte ori să repetați înainte de a ieși din buclă și cum să inserați valorile calculate în noile matrice etc.
Aceeași problemă a fost rezolvată folosind programarea declarativă și imperativă.
Care este diferența dintre programarea declarativă și cea imperativă?
Programare declarativă vs imperativă |
|
Programarea declarativă este o paradigmă de programare care exprimă logica unui calcul fără a descrie fluxul de control al acestuia. | Programarea imperativă este o paradigmă de programare care utilizează instrucțiuni care schimbă starea programului. |
Focus principal | |
Programarea declarativă se concentrează pe ceea ce ar trebui să realizeze programul. | Programarea imperativă se concentrează pe modul în care programul ar trebui să obțină rezultatul. |
Flexibilitate | |
Programarea declarativă oferă mai puțină flexibilitate. | Programarea imperativă oferă mai multă flexibilitate. |
Complexitate | |
Programarea declarativă simplifică programul. | Programarea imperativă poate crește complexitatea programului. |
Categorizare | |
Programarea funcțională, logică, interogare se încadrează în programarea declarativă. | Programarea procedurală și orientată pe obiecte intră în programarea imperativă. |
Rezumat – Programare declarativă vs imperativă
Acest articol a discutat despre diferența dintre două paradigme majore de programare, care sunt programarea declarativă și programarea imperativă. Diferența dintre programarea declarativă și cea imperativă este că programarea declarativă se concentrează pe ceea ce ar trebui să realizeze programul, în timp ce programarea imperativă se concentrează pe modul în care programul ar trebui să obțină rezultatul.