Paradygmaty i odpowiadające im języki programowania można podzielić na dwie główne grupy: imperatywne - deklaratywne.
Języki imperatywne używają rozkazów opisujących czynności które komputer ma w pewnej kolejności wykonywać.
Program jest więc listą rozkazów do wykonania, stąd nazwa imperatywne („rozkazowe").
W językach deklaratywnych programista podaje (deklaruje) komputerowi pewne zależności oraz cele, które program ma osiągnąć.
Języki imperatywne mówią komputerowi, jak ma osiągnąć wynik
(choć nie określają jaki wynik), natomiast języki
deklaratywne opisują, co ma być osiągnięte (choć nie podają jak).
Ten podział przedstawia rysunek
programowanie
| Imperatywne |
\ proceduralne |
| funkcyjne | j logiczne"]