Ključna razlika – deklarativno proti imperativnemu programiranju
Deklarativno in imperativno programiranje sta dve pogosti paradigmi programiranja. Ključna razlika med deklarativnim in imperativnim programiranjem je, da se deklarativno programiranje osredotoča na to, kaj mora program doseči, medtem ko se imperativno programiranje osredotoča na to, kako naj program doseže rezultat.
Paradigma programiranja se uporablja za razvrščanje programskega jezika glede na funkcijo. Omogoča tudi sledenje določenemu vzorcu ali slogu za rešitev določene težave.
Kaj je deklarativno programiranje?
Deklarativno programiranje je mogoče razložiti s scenarijem iz resničnega sveta. Predpostavimo, da mora uporabnik preveriti nova e-poštna sporočila. Eden od načinov je omogočanje obvestil v mapi »Prejeto«. Uporabnik mora obvestila omogočiti samo enkrat, vsakič, ko prispe novo elektronsko sporočilo, pa samodejno prejme obvestilo. Deklarativno programiranje je podobno temu. Zagotavlja preprostost. Deklarativno programiranje izraža, kaj je zahtevani rezultat. Pojasnjuje logiko izračuna brez opisa krmilnega toka.
Slika 01: Paradigme programiranja
Primer deklarativnega programiranja je naslednji. Gre za množenje števil matrike s konstanto in njihovo shranjevanje v novo matriko.
var številk=[1, 2, 3];
var newnumbers=numbers.map(function(number){
vrni številke5;
});
Console.log(novaštevila);
V zgornjem primeru 'map' daje navodila za ponavljanje vsakega elementa v matriki in za priklic funkcije povratnega klica za vsako postavko ter shranjevanje vrnjene vrednosti v novo matriko. To bo dalo rezultat 5, 10, 15. V tem programu je glavni cilj množenja števil s 5 dosežen s funkcijo zemljevida. Pregledal bo vsak element in uporabil funkcijo povratnega klica za izračun in shranjevanje vrednosti v novo matriko. Ni treba zagotoviti vseh korakov. Glavni poudarek je na tem, kar je treba doseči.
Kaj je nujno programiranje?
Imperativno programiranje je mogoče razložiti z uporabo scenarija iz resničnega sveta kot prej. Za preverjanje novih e-poštnih sporočil se lahko uporabnik prijavi v gmail in nenehno osvežuje stran, da preveri, ali je prejel nova e-poštna sporočila ali ne. To je podobno imperativnemu programiranju. Pojasnjuje vsak korak za doseganje rezultata. Uporablja stavke za izražanje sprememb v stanju programa.
Množenje elementov matrike s konstanto in shranjevanje vrednosti v novo matriko v imperativnem programiranju je naslednje.
var številk=[1, 2, 3];
var newnumbers=;
for(int i=0; i< numbers.length; i++) {
newnumbers.push(numbers5);
}
Console.log(nove številke);
V zgornjem primeru so številke niz. Pri prehodu skozi zanko se vsako število pomnoži s 5 in doda matriki novih števil. Po koncu zanke se bo izpisala vsebina novih števil, ki so 5, 10, 15.
Opazimo lahko, da imperativni slog zagotavlja vse korake za dosego naloge. Izraža, kako ponoviti matriko z uporabo spremenljivke števca 'i', kolikokrat ponoviti, preden gremo iz zanke in kako vstaviti izračunane vrednosti v nove matrike itd.
Ista težava je bila rešena z uporabo deklarativnega in imperativnega programiranja.
Kakšna je razlika med deklarativnim in imperativnim programiranjem?
Deklarativno proti imperativnemu programiranju |
|
Deklarativno programiranje je programska paradigma, ki izraža logiko računanja, ne da bi opisovala njegov nadzorni tok. | Imperativno programiranje je paradigma programiranja, ki uporablja stavke, ki spreminjajo stanje programa. |
Glavni fokus | |
Deklarativno programiranje se osredotoča na to, kaj mora program doseči. | Imperativno programiranje se osredotoča na to, kako naj program doseže rezultat. |
Fleksibilnost | |
Deklarativno programiranje zagotavlja manj prilagodljivosti. | Imperativno programiranje zagotavlja večjo prilagodljivost. |
Kompleksnost | |
Deklarativno programiranje poenostavi program. | Imperativno programiranje lahko poveča kompleksnost programa. |
Kategorizacija | |
Funkcionalno, logično, poizvedovalno programiranje spada v deklarativno programiranje. | Proceduralno in objektno usmerjeno programiranje spada v imperativno programiranje. |
Povzetek – deklarativno proti imperativnemu programiranju
Ta članek je obravnaval razliko med dvema glavnima programskima paradigmama, ki sta deklarativno in imperativno programiranje. Razlika med deklarativnim in imperativnim programiranjem je v tem, da se deklarativno programiranje osredotoča na to, kaj mora program doseči, medtem ko se imperativno programiranje osredotoča na to, kako naj program doseže rezultat.