Les usages et intérêts de la programmation déclarative.

Juliette Tissot
ELP-2018
Published in
4 min readJan 18, 2019

--

La programmation déclarative est un paradigme de programmation, c’est-à-dire qu’elle définit la façon dont le développeur voit la structure de son programme.

Qu’est ce qu’un paradigme de programmation ?

Les paradigmes de programmation sont une façon de classifier les différents langages de programmation basée sur leurs caractéristiques. (Certains paradigmes prennent principalement en compte les modèles d’exécution du langage, comme par exemple l’autorisation des effets de bord.) D’autres sont plus orientés sur la façon dont le code est organisé ou sur la syntaxe utilisée pour coder. Il existe un très grand nombre de paradigmes différents mais les deux plus connus sont la programmation déclarative et la programmation impérative. Certains langages ne supportent qu’un seul paradigme, comme par exemple Haskell pour la programmation fonctionnelle. A l’inverse d’autres en peuvent en supporter plusieurs, comme Python ou C++. Nous allons voir plus en détails le fonctionnement de la programmation déclarative.

La programmation déclarative.

Les programmes déclaratifs prennent seulement en compte ce qu’un programme doit accomplir et non comment il doit le faire. Ils décrivent les relations entre les variables avec par exemple des fonctions et l’exécuteur applique ensuite un certain algorithme pour produire le résultat escompté. Ils sont context-independent, les étapes intermédiaires à la réalisation du programme ne sont donc pas définies à l’avance, ainsi, on peut utiliser le même dans différents contextes. Le programme agira donc en fonction de l’état dans lequel il se trouve.

Exemple de programme en SQL

On peut voir, sur l’exemple ci-dessus, un extrait de code en SQL, dont le but est de chercher des étudiants, dont la ville d’origine est Grenoble et d’afficher leurs noms, prénoms et numéros d’étudiants. Ce langage est un exemple très concret de langage déclaratif. En effet, on voit que le code contient uniquement une demande et non pas la façon de la réaliser. Seuls les attributs à afficher sont écrits et on n’a aucune piste sur la façon dont la recherche dans la base de données va s’effectuer.

Avantages.

On peut lister quelques avantages à l’utilisation de langages déclaratifs. Tout d’abord, il est possible d’écrire un code qui soit réutilisable dans différentes circonstances. La gestion des erreurs est également plus simple qu’avec des langages impératifs. Le fait de laisser à l’ordinateur la possibilité de réarranger l’ordre des tâches à effectuer, et même d’en effectuer certaines en parallèle, permet aussi une meilleure optimisation. En effet, la machine a plus de travail à faire avec un programme déclaratif car elle doit déterminer comment le réaliser, ce qui n’a pas lieu avec un programme impératif mais lorsqu’elle a déterminé cela, elle est plus efficace en raison de la liberté dont elle dispose. De plus, la programmation déclarative permet de rester dans de la programmation de haut niveau, ce qui limite ainsi les erreurs car les détails des couches inférieures ne sont pas accessibles par le programmeur.

Quelques exemples.

Voici quelques exemples de langages de programmation déclarative.

  • La programmation fonctionnelle, qui considère un programme comme l’exécution d’un ensemble de fonctions mathématiques (par exemple Haskell). Elle n’utilise pas de machine à état pour décrire le programme mais des fonctions que l’ont peut imbriquer. Chaque fonction peut prendre plusieurs paramètres en entrée mais n’en retourner qu’un seul en sortie.
  • La programmation logique, pour laquelle les relations logiques forment les composants d’une application (par exemple Prolog ou Oz). Elle les définit grâce à des faits élémentaires les concernant ainsi qu’avec des règles de logique leur associant des conséquences plus ou moins directes.
  • La programmation par contrainte, dans laquelle on sépare la partie modélisation à l’aide de CSP (Contraint Satisfaction Problem) de la partie résolution ( par exemple Prolog III). La résolution se base sur l’utilisation des contraintes pour diminuer la quantité de solutions à parcourir.

Pour conclure, on peut dire que les différents types de programmations déclaratives permettent d’écrire du code sans avoir à se soucier de la façon dont on souhaite réaliser une tâche mais plutôt quelle est la tâche à réaliser, ce qui permet de ne pas avoir à se soucier du fonctionnement des couches les plus basses et ainsi limiter les sources d’erreur.

Sources.

--

--