La programmation est l'action de concevoir et de réaliser une solution,
un algorithme et un programme, en vue d'une exécution automatique. L'algorithme est constitué d'une
part de logique (quoi faire) et d'une part de contrôle (comment le faire). Le programme met en œuvre
l'algorithme.
En programmation impérative, le programme est constitué d'une suite
ordonnée d'instructions qui constituent des ordres. Par exemple, pour calculer le maximum dans un ensemble
d'éléments, je parcours chaque élément dans un ordre précis et je compare chacun
à l’élément supposé maximum.
En programmation déclarative, il me suffit d'énoncer (de déclarer)
le résultat à obtenir.
Par exemple, max(T) = {ti | ∀ tj ∈ T, ti ≥ tj }
Si on prend un autre exemple, celui de la factorielle, voici 4 styles de programmation possibles :
Impératif itératif |
Déclaratif fonctionnel |
long factorielle(int n) {
long res = 1;
for(int i=2; i<n; i++) {
res = res * i;
}
return res;
}
|
(factorielle (n)
((zero? n) 1)
(* n (factorielle (- n 1)))
|
Impératif récursif |
Déclaratif logique |
long factorielle(int n) {
if (n==0) return 1;
return n * factorielle(n-1);
}
|
factorielle(0,1):-
!.
factorielle(N,T):-
N1 is N-1,
factoriel(N1,T1),
T is T1*N.
|