Există două paradigme ale programării: imperative și declarative. Paradigma principală (tradițională) a programării este programarea imperativă (procedurală). În cadrul paradigmei imperative se consideră o clasă de limbi de programare în care programul indică în mod explicit metoda obținerii rezultatului, fără a specifica proprietățile așteptate ale rezultatului. Procedura de obținere a rezultatului are forma unei secvențe de operații. Prin urmare, trăsăturile caracteristice ale programului imperativ:
‣recepție - indicarea logicii de control în program;
‣receptare - determinarea ordinii de operare;
‣recepție - prezența operatorilor de atribuire care efectuează sarcini distructive.
Paradigma imperativă se bazează pe modelul de calcul "f-Neumann", al cărui principal parametru este:
‣receptare Programul constă dintr-un set de instrucțiuni care sunt executate secvențial;
‣carecare zone numite de memorie (conceptul de variabile ca zone de memorie, care pot fi accesate prin nume).
Conceptul de memorie ca un magazin de valori, al cărui conținut poate fi actualizat de către operatorii de programe, este fundamental în programarea imperativă.
Implementarea programului este redusă la executarea secvențială a operatorilor pentru a converti starea inițială a memoriei, adică valorile datelor originale, la cea finală, adică la rezultatele. Tᴀᴋᴎᴍ ᴏϬᴩᴀᴈᴏᴍ, din punct de vedere al programatorului, există un program și o memorie, prima care actualizează constant conținutul acestuia din urmă.
Limbile de programare imperative se caracterizează prin următoarele caracteristici:
‣decare este extrem de important să gestionați în mod explicit memoria, în special, descrierea variabilelor;
‣rectitudine mică pentru calcule de caractere;
‣receptare - lipsa unei baze matematice riguroase;
‣receptarea eficienței înalte a implementării pe computerele tradiționale.
Una dintre cele mai importante caracteristici de clasificare a unui limbaj procedural este nivelul său. Nivelul limbajului de programare este determinat de capacitatea semantică (semantică) a construcțiilor sale și de gradul de orientare a acestuia la programator. Limba de programare elimină parțial diferența dintre metodele de rezolvare a diferitelor sarcini de către o persoană și un computer. Cu cât mai multă limbă se concentrează asupra unei persoane, cu atât este mai mare nivelul acesteia. Limbile de programare imperative includ asamblatori și cunoscute limbi de programare la nivel înalt, de exemplu Fortran, Pascal, C.
Un model fundamental de calcul presupune o paradigmă de programare declarativă. Atunci când se utilizează un limbaj declarativ, programul indică în mod explicit ce proprietăți ar trebui să aibă rezultatul, dar nu determină ordinea primirii. În mod ideal, un program declarativ va consta în propoziții care descriu rezultatul dorit. Este caracteristic faptul că în acest caz ordinea propozițiilor care determină proprietățile specifice ale rezultatului nu contează. În paradigma declarativă nu există niciun concept de variabilă, ca zonă numită de memorie și control explicit. Limbile declarative nu sunt legate rigid de modelul tradițional von Neumann de calcul. În majoritatea cazurilor, algoritmul pentru obținerea unui rezultat extrem de important poate avea un grad ridicat de paralelism.
Paradigma programării declarative este implementată utilizând unul din cele două stiluri de programare: programare funcțională sau logică.