Introduction
L'intérêt d'un langage informatique par rapport à un autre
provient de la facilité de développer des applications dont l'exécution
est sûre et dont la maintenance est aisée. La première partie de
cet ouvrage consacrée à la présentation du langage
Objective CAML va logiquement se clore avec la réalisation de plusieurs
applications.
La première application propose l'implantation de quelques fonctions
permettant l'expression de requêtes sur une base de
données. L'accent est mis sur l'utilisation d'un style de
programmation fonctionnel et sur les manipulations de listes.
On peut ainsi fournir à l'utilisateur un ensemble de fonctions
permettant d'exprimer et d'évaluer facilement ses requêtes en utilisant
directement le langage Objective CAML. On montre au programmeur comment il
peut facilement fournir à l'utilisateur la plupart des outils
d'interrogation dont ce dernier peut avoir besoin.
La deuxième application est un interprète pour un petit
BASIC1. Il est à noter que ce type de langage impératif
a fait le succès des premiers micro-ordinateurs. Vingt ans après, cela
semble fort simple à réaliser. Bien que BASIC soit un langage
impératif, l'implantation de cet interprète utilisera plutôt la partie
fonctionnelle d'Objective CAML, en particulier pour l'évaluation des
instructions. Néanmoins les parties d'analyses lexicale et syntaxique
du langage utilisent une structure physiquement modifiable.
La troisième application est un jeu à un joueur, le Démineur, bien
connu car il est incorporé à l'installation standard des systèmes
Windows. Le but du jeu est de découvrir un ensemble de mines cachées
en envoyant des sondes qui indiquent le nombre de mines autour d'une
case déterminée. L'implantation utilise plutôt la partie impérative du
langage, car la structure de données sous-jacente est un tableau à deux
dimensions qui sera physiquement modifié à chaque coup
joué. Cette application utilise le module
Graphics pour le dessin du jeu et pour gérer l'interaction
avec le joueur. Néanmoins la détection des cases à découvrir sera
réalisée dans un style plus fonctionnel.
Cette dernière application fera appel à des fonctions du module
Graphics décrit au chapitre 5 (voir page
??) ainsi qu'à quelques fonctions des modules
Random et Sys (voir chapitre
8, pages ?? et
??).