“doc” (Col. : Science Sup 17x24) — 2007/7/19 — 18:18 — page 162 — #172
i
i
i
i
i
i
i
i
162
3
• Techniques de programmation déclarative
Écrire un fichier
Un fichier est généralement écrit incrémentalement, en y ajoutant une chaîne de
caractères à la fois. Le module File fournit trois opérations : File.writeOpen
pour ouvrir le fichier au début ; File.write pour ajouter une chaîne (ou un atome)
au fichier ; et File.writeClose pour fermer le fichier à la fin. Voici un exemple :
{File.writeOpen ´foo.txt´}
{File.write ´Cette phrase sera dans le fichier.\n´}
{File.write "Les chaˆ ınes sont accept´ ees aussi.\n"}
{File.writeClose}
Après ces opérations, le fichier ’foo.txt’ contient les deux lignes de texte suivantes :
Cette phrase sera dans le fichier.
Les cha^ ınes sont accept´ ees aussi.
3.7.2 L’entrée/sortie de texte avec une interface graphique
La façon la plus directe d’interfacer un programme avec un être humain est avec une
interface graphique. Cette section montre une manière simple mais puissante pour
définir des interfaces graphiques, en utilisant des spécifications concises qui sont déclaratives pour la plupart. C’est un excellent exemple d’un langage déclaratif descriptif,
comme nous l’avons défini dans la section 3.1. Le langage descriptif est compris par
le module QTk du système Mozart. L’interface graphique est spécifiée comme un
enregistrement imbriqué, dans lequel on ajoute quelques objets et procédures. (Les
objets seront introduits dans le chapitre 6. Pour l’instant, vous pouvez les considérer
comme des procédures avec un état interne, comme les exemples du chapitre 1.)
Cette section explique comment construire des interfaces graphiques pour entrer
et sortir des données textuelles dans une fenêtre. Cela suffit pour beaucoup de programmes déclaratifs. Nous donnons un bref résumé du module QTk, juste assez pour
construire ces interfaces. Pour plus d’informations voir la documentation QTk [31].
La spécification déclarative des gadgets logiciels
Une fenêtre sur l’écran contient un ensemble de gadgets logiciels. Un gadget logiciel
(« widget ») est une surface rectangulaire dans une fenêtre qui a un comportement
interactif particulier. Par exemple, certains gadgets peuvent afficher du texte ou des
informations graphiques, et d’autres gadgets peuvent accepter des entrées comme des
clics du clavier ou de la souris. Nous spécifions chaque gadget de façon déclarative
par un enregistrement dont l’étiquette et les noms des champs définissent le type du
gadget et son état initial. La fenêtre est spécifiée comme un enregistrement imbriqué
(un arbre) qui définit la structure logique des gadgets dans la fenêtre. Voici les cinq
gadgets que nous utilisons :
i
i
i
i
i
i
i
i
162
3
• Techniques de programmation déclarative
Écrire un fichier
Un fichier est généralement écrit incrémentalement, en y ajoutant une chaîne de
caractères à la fois. Le module File fournit trois opérations : File.writeOpen
pour ouvrir le fichier au début ; File.write pour ajouter une chaîne (ou un atome)
au fichier ; et File.writeClose pour fermer le fichier à la fin. Voici un exemple :
{File.writeOpen ´foo.txt´}
{File.write ´Cette phrase sera dans le fichier.\n´}
{File.write "Les chaˆ ınes sont accept´ ees aussi.\n"}
{File.writeClose}
Après ces opérations, le fichier ’foo.txt’ contient les deux lignes de texte suivantes :
Cette phrase sera dans le fichier.
Les cha^ ınes sont accept´ ees aussi.
3.7.2 L’entrée/sortie de texte avec une interface graphique
La façon la plus directe d’interfacer un programme avec un être humain est avec une
interface graphique. Cette section montre une manière simple mais puissante pour
définir des interfaces graphiques, en utilisant des spécifications concises qui sont déclaratives pour la plupart. C’est un excellent exemple d’un langage déclaratif descriptif,
comme nous l’avons défini dans la section 3.1. Le langage descriptif est compris par
le module QTk du système Mozart. L’interface graphique est spécifiée comme un
enregistrement imbriqué, dans lequel on ajoute quelques objets et procédures. (Les
objets seront introduits dans le chapitre 6. Pour l’instant, vous pouvez les considérer
comme des procédures avec un état interne, comme les exemples du chapitre 1.)
Cette section explique comment construire des interfaces graphiques pour entrer
et sortir des données textuelles dans une fenêtre. Cela suffit pour beaucoup de programmes déclaratifs. Nous donnons un bref résumé du module QTk, juste assez pour
construire ces interfaces. Pour plus d’informations voir la documentation QTk [31].
La spécification déclarative des gadgets logiciels
Une fenêtre sur l’écran contient un ensemble de gadgets logiciels. Un gadget logiciel
(« widget ») est une surface rectangulaire dans une fenêtre qui a un comportement
interactif particulier. Par exemple, certains gadgets peuvent afficher du texte ou des
informations graphiques, et d’autres gadgets peuvent accepter des entrées comme des
clics du clavier ou de la souris. Nous spécifions chaque gadget de façon déclarative
par un enregistrement dont l’étiquette et les noms des champs définissent le type du
gadget et son état initial. La fenêtre est spécifiée comme un enregistrement imbriqué
(un arbre) qui définit la structure logique des gadgets dans la fenêtre. Voici les cinq
gadgets que nous utilisons :
