Programmation déclarative
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.
Objectif
Comprendre les fondements de la programmation déclarative.
Mise en situation
Lorsque l'on programme, il est parfois nécessaire d'obtenir un résultat précis, indépendamment de l'état actuel du programme ou de la machine. C'est à dire que l'on souhaite que la machine réalise une tâche, sans avoir besoin de décrire les différentes opérations nécessaires pour y arriver.
Les langages de programmation déclaratifs permettent de décrire précisément le résultat que l'on souhaite, tout en laissant la gestion du "comment nous voulons l'obtenir" à l'ordinateur.
Définition : Programmation déclarative
C'est un paradigme qui consiste à créer des programmes sur la base de composants indépendants du contexte et sans état. Cette forme de programmation cherche à réduire les effets de bord en décrivant la tâche que le programme doit accomplir au lieu de décrire comment le programme doit accomplir cette tâche. Ainsi, on peut retrouver une correspondance claire entre ce type de langage et la logique mathématique.
Exemple : SQL
Les requêtes SQL de type SELECT sont déclaratives.
CREATE TABLE users (
id INTEGER,
name VARCHAR(50),
PRIMARY KEY(id)
);
INSERT INTO users (id, name)
VALUES (1, 'Luke');
INSERT INTO users (id, name)
VALUES (2, 'Anakin');
SELECT id, name
FROM users;
Ce code permet de déclarer à la machine que l'on souhaite créer, insérer puis récupérer les champs id
et name
de la table users
, sans pour autant lui décrire comment y arriver. Le développeur ici ne s'intéresse pas au contexte ou à l'état du programme qui enverra le résultat.
Avec un langage impératif, le développeur aurait besoin d'écrire les instructions pour chercher parmi toutes les tables et trouver les bons résultats.
Programmation logique
Les langages logiques peuvent être considérés comme des langages déclaratifs, dans le sens où ils permettent de déclarer des vérités (prémisses) pour les mettre en relations et ainsi créer des programmes pour interroger ces vérités. Le développeur n'a pas à donner d'instructions précises mais doit cependant pouvoir formuler ses déclarations de la bonne manière (ce qui peut conduire à des effets de bord).
Exemple : Prolog
On déclare d'abord une base de faits (les vérités). Dans cet exemple, on indique qu'Alice habite en France et que Bob habite en Angleterre.
country(alice,france).
country(bob,angleterre).
On peut ensuite interroger cette base de fait, en demandant si Alice habite en France et si Bob habite en France.
| ?- country(alice,france).
yes.
| ?- country(bob,france).
no.
Il est aussi possible de déclarer une base de règles, c'est-à-dire des vérités générales. En effet, un développeur pourrait ajouter que deux personnes qui n'habitent pas le même pays ne sont pas voisins.
La manière avec laquelle le programme répond aux questions n'est pas importante et le développeur ne veut que le résultat.
À retenir
La programmation déclarative sert à accomplir des tâches sans devoir exprimer comment accomplir ces tâches.
Le développeur se concentre sur le quoi et pas le comment.
La programmation logique peut être vu comme une forme de programmation déclarative.
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.