“doc” (Col. : Science Sup 17x24) — 2007/7/19 — 18:18 — page 109 — #119
i
i
i
i
i
i
i
i
3.1 La déclarativité c’est quoi ?
109
3.1 LA DÉCLARATIVITÉ C’EST QUOI ?
Le modèle déclaratif du chapitre 2 est particulièrement approprié pour écrire des
programmes déclaratifs parce que tous les programmes écrits dans ce modèle seront
déclaratifs de ce fait même. Mais il y a de nombreuses autres façons de faire de la
programmation déclarative. Avant d’expliquer comment programmer dans le modèle
déclaratif, nous le situons par rapport aux autres manières d’être déclaratif. Nous expliquons aussi pourquoi les programmes écrits dans ce modèle sont toujours déclaratifs.
3.1.1 Une classification de la programmation déclarative
À l’origine, la programmation déclarative c’est programmer en définissant le pourquoi
(les résultats que nous voulons) sans expliquer le comment (les algorithmes, etc., nécessaires pour les calculer). Cette intuition vague couvre beaucoup d’idées différentes.
La figure 3.3 montre une classification. Le premier niveau de la classification est basé
sur l’expressivité. Il y a deux possibilités :
– Une déclarativité descriptive. C’est le modèle le moins expressif. Le « programme » déclaratif définit simplement une structure de données. Le tableau 3.1
définit un langage à ce niveau. Ce langage peut seulement créer des enregistrements ! Il ne contient que les cinq premières instructions du langage noyau du
tableau 2.1. La section 3.7.2 montre comment utiliser ce langage pour définir
des interfaces graphiques. D’autres exemples sont des langages de formattage
comme le HTML (« Hypertext Markup Language »), qui donne la structure d’un
document sans dire comment faire le formattage, et des langages d’échange d’informations comme le XML (« Extensible Markup Language ») qui définit un
format ouvert facilement lisible par tous. Mais le niveau descriptif est trop faible
pour écrire des programmes généraux. Alors pourquoi est-il intéressant ? Parce
qu’il est fait des structures de données que l’on peut facilement manipuler. Les
enregistrements du tableau 3.1, les documents HTML et XML, et les interfaces
graphiques déclaratives de la section 3.7.2 peuvent tous être créés et transformés
facilement par un programme.
– Une déclarativité programmable. C’est aussi expressif qu’une machine de
Turing.
2 Par exemple, le tableau 2.1 définit un langage à ce niveau. (L’introduction du chapitre 5 contient plus d’informations sur la relation entre les niveaux
descriptif et programmable.)
2. Une machine de Turing est un modèle de calcul simple, défini pour la première fois par Alan Turing,
qui est aussi puissant que tout ordinateur que l’on puisse construire, selon l’état des connaissances
actuel en informatique. Tout calcul que l’on puisse programmer sur un ordinateur quelconque peut être
programmé sur une machine de Turing.
© Dunod – La photocopie non autorisée est un délit
i
i
i
i
i
i
i
i
3.1 La déclarativité c’est quoi ?
109
3.1 LA DÉCLARATIVITÉ C’EST QUOI ?
Le modèle déclaratif du chapitre 2 est particulièrement approprié pour écrire des
programmes déclaratifs parce que tous les programmes écrits dans ce modèle seront
déclaratifs de ce fait même. Mais il y a de nombreuses autres façons de faire de la
programmation déclarative. Avant d’expliquer comment programmer dans le modèle
déclaratif, nous le situons par rapport aux autres manières d’être déclaratif. Nous expliquons aussi pourquoi les programmes écrits dans ce modèle sont toujours déclaratifs.
3.1.1 Une classification de la programmation déclarative
À l’origine, la programmation déclarative c’est programmer en définissant le pourquoi
(les résultats que nous voulons) sans expliquer le comment (les algorithmes, etc., nécessaires pour les calculer). Cette intuition vague couvre beaucoup d’idées différentes.
La figure 3.3 montre une classification. Le premier niveau de la classification est basé
sur l’expressivité. Il y a deux possibilités :
– Une déclarativité descriptive. C’est le modèle le moins expressif. Le « programme » déclaratif définit simplement une structure de données. Le tableau 3.1
définit un langage à ce niveau. Ce langage peut seulement créer des enregistrements ! Il ne contient que les cinq premières instructions du langage noyau du
tableau 2.1. La section 3.7.2 montre comment utiliser ce langage pour définir
des interfaces graphiques. D’autres exemples sont des langages de formattage
comme le HTML (« Hypertext Markup Language »), qui donne la structure d’un
document sans dire comment faire le formattage, et des langages d’échange d’informations comme le XML (« Extensible Markup Language ») qui définit un
format ouvert facilement lisible par tous. Mais le niveau descriptif est trop faible
pour écrire des programmes généraux. Alors pourquoi est-il intéressant ? Parce
qu’il est fait des structures de données que l’on peut facilement manipuler. Les
enregistrements du tableau 3.1, les documents HTML et XML, et les interfaces
graphiques déclaratives de la section 3.7.2 peuvent tous être créés et transformés
facilement par un programme.
– Une déclarativité programmable. C’est aussi expressif qu’une machine de
Turing.
2 Par exemple, le tableau 2.1 définit un langage à ce niveau. (L’introduction du chapitre 5 contient plus d’informations sur la relation entre les niveaux
descriptif et programmable.)
2. Une machine de Turing est un modèle de calcul simple, défini pour la première fois par Alan Turing,
qui est aussi puissant que tout ordinateur que l’on puisse construire, selon l’état des connaissances
actuel en informatique. Tout calcul que l’on puisse programmer sur un ordinateur quelconque peut être
programmé sur une machine de Turing.
© Dunod – La photocopie non autorisée est un délit
