“doc” (Col. : Science Sup 17x24) — 2007/7/19 — 18:18 — page 178 — #188
i
i
i
i
i
i
i
i
178
3
• Techniques de programmation déclarative
et end) définit l’effet du programme. Nous compilons d’abord le fichier Dict.oz
pour en faire un foncteur compilé, avec la commande ozc sur la ligne de commande :
ozc -c Dict.oz
Nous compilons ensuite le fichier WordApp.oz pour en faire le programme autonome
WordApp, avec la commande suivante :
ozc -x WordApp.oz
On peut l’exécuter ainsi :
WordApp < book.raw
où book.raw est un fichier qui contient un texte. Le texte est passé à l’entrée standard
du programme, qui est vue par le programme comme un fichier avec le nom stdin.
Le programme fera l’édition dynamique des liens de Dict.ozf quand le dictionnaire
est utilisé pour la première fois. Il est aussi possible d’éditer les liens de Dict.ozf
statiquement dans le code compilé de l’application WordApp, ce qui évite la nécessité
de faire une édition dynamique des liens (voir documentation du système Mozart [69]).
Le code compilé s’appelle aussi code machine, parce qu’il s’exécute sur la machine.
Les modules de bibliothèque
L’application utilise le module QTk qui fait partie du système Mozart. Tout langage de
programmation, afin d’être pratique, doit être accompagné d’un ensemble d’abstractions utiles. Celles-ci sont organisées en bibliothèques. Une bibliothèque (« library »)
est une collection cohérente d’une ou plusieurs abstractions apparentées qui sont utiles
dans un domaine particulier de problèmes. Selon le langage et la bibliothèque, la
bibliothèque peut être considérée comme une partie du langage ou à l’extérieur du
langage. La ligne de démarcation est floue : souvent la plupart des opérations de base
du langage sont implémentées dans des bibliothèques. Par exemple, les fonctions
sur les nombres réels (sinus, cosinus, logarithme, etc.) sont dans la plupart des cas
implémentées dans des bibliothèques. Comme le nombre de bibliothèques peut être
très grand, c’est une bonne idée de les organiser comme des modules.
Les modules de bibliothèque disponibles dans le système Mozart sont regroupés
en modules de base (« Base modules », toujours disponibles au démarrage [23]) et
modules système (« System modules », disponibles dans l’interface interactive et à
importer dans les foncteurs [22]). Les modules dans le Mozart Standard Library,
comme QTk, doivent toujours être importés, même dans l’interface interactive.
i
i
i
i
i
i
i
i
178
3
• Techniques de programmation déclarative
et end) définit l’effet du programme. Nous compilons d’abord le fichier Dict.oz
pour en faire un foncteur compilé, avec la commande ozc sur la ligne de commande :
ozc -c Dict.oz
Nous compilons ensuite le fichier WordApp.oz pour en faire le programme autonome
WordApp, avec la commande suivante :
ozc -x WordApp.oz
On peut l’exécuter ainsi :
WordApp < book.raw
où book.raw est un fichier qui contient un texte. Le texte est passé à l’entrée standard
du programme, qui est vue par le programme comme un fichier avec le nom stdin.
Le programme fera l’édition dynamique des liens de Dict.ozf quand le dictionnaire
est utilisé pour la première fois. Il est aussi possible d’éditer les liens de Dict.ozf
statiquement dans le code compilé de l’application WordApp, ce qui évite la nécessité
de faire une édition dynamique des liens (voir documentation du système Mozart [69]).
Le code compilé s’appelle aussi code machine, parce qu’il s’exécute sur la machine.
Les modules de bibliothèque
L’application utilise le module QTk qui fait partie du système Mozart. Tout langage de
programmation, afin d’être pratique, doit être accompagné d’un ensemble d’abstractions utiles. Celles-ci sont organisées en bibliothèques. Une bibliothèque (« library »)
est une collection cohérente d’une ou plusieurs abstractions apparentées qui sont utiles
dans un domaine particulier de problèmes. Selon le langage et la bibliothèque, la
bibliothèque peut être considérée comme une partie du langage ou à l’extérieur du
langage. La ligne de démarcation est floue : souvent la plupart des opérations de base
du langage sont implémentées dans des bibliothèques. Par exemple, les fonctions
sur les nombres réels (sinus, cosinus, logarithme, etc.) sont dans la plupart des cas
implémentées dans des bibliothèques. Comme le nombre de bibliothèques peut être
très grand, c’est une bonne idée de les organiser comme des modules.
Les modules de bibliothèque disponibles dans le système Mozart sont regroupés
en modules de base (« Base modules », toujours disponibles au démarrage [23]) et
modules système (« System modules », disponibles dans l’interface interactive et à
importer dans les foncteurs [22]). Les modules dans le Mozart Standard Library,
comme QTk, doivent toujours être importés, même dans l’interface interactive.
