La programmation déclarative est un paradigme de programmation informatique dans lequel un développeur détermine ce qu'un programme devrait faire plutôt que de déterminer explicitement comment il devrait le faire. Cette approche est naturellement adaptée à la définition logicielle des systèmes logiques formels et présente l'avantage de faciliter la programmation de certaines applications de traitement parallèle.
Comment fonctionne la programmation déclarative?
Le bon fonctionnement de la programmation déclarative dépend de la logique et des contraintes pour déterminer la configuration et le résultat. Les contraintes définissent les propriétés qui sont exécutées dans un scénario de programmation particulier et définies dans les bibliothèques de programmes.
La programmation logique exprime les règles et les faits concernant le domaine dans lequel la programmation déclarative est utilisée.
Le langage spécifique au domaine (DSL) est utilisé conjointement avec la programmation déclarative, de sorte que le flux de contrôle est intégré au langage et existe séparément de la logique.
Dans la programmation déclarative, les développeurs disposent d'outils qui permettent l'abstraction de l'implémentation et aident à se concentrer sur le problème.
Langages déclaratifs
Un langage de programmation déclaratif est un type de langage de programmation qui ne nécessite pas que le programmeur détermine les étapes qu'une machine doit suivre. Au lieu de cela, il annonce et décrit les faits et les relations entre les points et les éléments de données.
Il existe deux types de langages déclaratifs parmi les plus courants : les langages de programmation fonctionnelle et logique. En outre, les langages de programmation déclaratifs peuvent encore être classés en programmation restreinte, programmation logique et programmation logique avec restrictions.
Langages de programmation logiques
PROLOG (Programming in Logic) est un exemple bien connu de langages de programmation logique. Ces langages représentent le programme comme un ensemble de liens logiques. Les langages de programmation logique sont similaires au langage des bases de données SQL (Structured Queries Language). Les programmes sont exécutés par un moteur de sortie qui répond à une requête en recherchant systématiquement ces relations pour créer des conclusions qui répondront à la requête. PROLOG a été utilisé dans la plupart des cas dans le traitement du langage naturel ainsi que dans d'autres programmes d'intelligence artificielle.
Langages fonctionnels
Ces langages ont un style mathématique. Vous pouvez construire un programme fonctionnel en appliquant des fonctions aux arguments. Les langages fonctionnels, tels que LISP, ML et Haskell, sont utilisés comme outils de recherche dans le développement de langages, dans des moyens automatisés de prouver des théorèmes mathématiques, et même dans une certaine mesure dans des projets commerciaux.
Avantages de la programmation déclarative
Le paradigme déclaratif présente plusieurs avantages:
Lisibilité/Utilisabilité
Les DSL sont généralement plus proches du langage naturel que du pseudo-code, donc plus lisibles et aussi plus faciles à étudier par des non-programmeurs.
Brièveté
La plupart du motif est abstrait par le DSL, ce qui laisse moins de lignes pour faire le même travail.
Réutilisation
Il est plus facile de créer du code qui peut être utilisé à des fins différentes, ce qui est notoirement difficile lorsqu'on utilise des constructions impératives.
Idempotence
La programmation déclarative vous permet de commencer avec un état fini et de laisser le programme le comprendre pour vous.
Correction des erreurs
Vous pouvez facilement spécifier une construction qui s'arrêtera à la première erreur. Cela élimine le besoin d'ajouter des écouteurs d'erreur pour chaque erreur possible.
Transparence référentielle
Les expressions peuvent être remplacées par leurs valeurs correspondantes, sans que le comportement du programme ne change.
Commutativité
La capacité d'exprimer un état fini sans spécifier l'ordre réel dans lequel il sera mis en œuvre.
Faut-il utiliser la programmation déclarative?
Les langages de programmation déclarative peuvent réduire considérablement la complexité de la gestion de certains projets de développement, mais ils peuvent aussi compliquer les applications qui ne sont pas surchargées de fonctionnalités ou qui peuvent croître à grande échelle.
Le processus consistant à établir le résultat d'un programme, plutôt que de gérer chaque étape, constitue une option efficace et productive pour les développeurs travaillant sur des programmes particulièrement complexes. Dans le même temps, les développeurs travaillant sur des applications relativement simples, dont l'échelle est peu susceptible de changer, peuvent trouver que la programmation impérative leur convient mieux.
Mais dans la pratique, on utilise souvent des formes de paradigmes mixtes, lorsque les langages de programmation déclaratifs sont complétés par des méthodes impératives. Cependant, cela augmente la susceptibilité aux erreurs et peut nuire à l'intelligibilité du code.