Introducere in Stiinta Calculatoarelor 2013 | Page 118
a. Programare procedurală – priveşte datele şi prelucrările ca entităţi
distincte (declarate separat) şi foloseşte conceptele de modul pentru
prelucrare şi orizont de vizibilitate pentru variabile. Un modul este
format din unul sau mai multe subprograme iar o variabilă (dată
declarată de anumit tip) este vizibilă (accesibilă) în cadrul unui modul
dar nu şi din afara sa; modulele pot fi preluate din biblioteci de
subprograme predefinite (prefabricate de producătorul compilatorului).
Programarea procedurală este realizată prin limbajele C, Pascal, Delphi,
FORTRAN, COBOL.
b. Programare imperativă – în care se furnizează calculatorului o listă
de instrucţiuni şi un context de memorie (considerat drept starea
programului la un moment dat) care este modificat printr-o comandă în
alt context (altă stare, cu alte valori de variabile în memorie).
Funcţionarea procesorului este de fapt imperativă, el urmărind pas cu
pas lista de instrucţiuni din program. Limbajele de programare uzuale
sunt imperative (FORTRAN, C, Perl), cele obiectuale (C++, Java)
adăugând doar noi facilităţi de lucru.
c. Programarea declarativă – diferă de cea imperativă prin faptul că în
program se descrie pentru calculator un set de condiţii, lăsând apoi
calculatorului sarcina să le satisfacă. În programarea declarativă, se
descriu relaţii între variabile în termeni de „reguli de inferenţă” (reguli
de obţinere a unor noi valori din cele existente). Calculatorul
(înţelegând aici un program complex de tipul unui motor de inferenţă
sau unui mediu de baze de date ce rulează pe calculator) aplică un
algoritm fixat şi interpretează relaţiile spre a produce un rezultat.
Limbaje uzuale din categoria declarativă sunt Prolog şi SQL.
d. Programarea funcţională – consideră prelucrarea drept evaluarea
funcţiilor matematice. Expresiile, în această paradigmă, sunt formate
din funcţii ce combină valori iar execuţia nu implică o secvenţă de
comenzi fiindcă programul defineşte CE şi nu CUM se prelucrează
datele. De fapt limbajele de programare nu pot fi pur funcţionale pentru
că rulează pe o maşină în paradigmă imperativă; se poate aminti Lisp
ca limbaj funcţional, în care prelucrările sunt structurate similar
structurării datelor (de obicei în liste).
118