Objectifs
Objective CAML est un langage de programmation : un de plus dira-t-on !
Ils sont en effet déjà nombreux et pourtant il en apparaît
constamment de nouveaux. Au delà de leurs disparités, la conception et
la genèse de chacun d'eux procèdent d'une motivation partagée : la
volonté d'abstraire.
-
S'abstraire de la machine
-
En premier lieu, un langage de programmation permet de négliger
l'aspect << mécanique >> de l'ordinateur; il autorise même à
oublier le modèle du microprocesseur ou le système d'exploitation sur
lequel sera exécuté le programme.
- S'abstraire du modèle opératoire
- La notion de fonction
que possède sous une forme ou une autre la plupart des langages est
empruntée aux mathématiques et non à l'électronique. D'une
manière générale, les langages substituent des modèles formels
aux conceptions purement calculatoires. Ils y gagnent en
expressivité.
- Abstraire les erreurs
- Il s'agit ici de la tentative de
garantir la sûreté d'exécution; un programme ne doit pas se
terminer brutalement ou devenir incohérent en cas d'erreur.
Un des moyens pour y parvenir est le typage statique fort des
programmes et la mise en oeuvre d'un mécanisme d'exceptions.
- Abstraire les composants (i)
- Les langages de
programmation donnent la possibilité de découper une application en
différents composants logiciels, plus ou moins indépendants et
autonomes. La modularité permet une structuration de plus haut niveau
de l'ensemble d'une application complexe.
- Abstraire les composants (ii)
- L'existence d'unités de programmes
a ouvert la possibilité de leur réutilisation dans d'autres contextes
que ceux de leur développement. Les langages à objets
constituent une autre approche de la réutilisabilité
permettant la réalisation très rapide de prototypes.
Objective CAML est un langage récent qui se place dans l'histoire des
langages de programmation comme un lointain descendant de LISP ayant
su tirer les enseignements de ses cousins en incorporant les
principales caractéristiques des autres langages. Il est développé à
l'INRIA1 et s'appuie sur une longue expérience de conception de
langages de la famille ML. Objective CAML est généraliste pour l'expression
d'algorithmes symboliques ou numériques. Il est orienté objet et
possède un système de modules paramétrés. Il permet le développement
d'applications concurrentes ou distribuées. Il possède une excellente
sûreté à l'exécution grâce à son typage statique, son mécanisme
d'exceptions et son récupérateur automatique de mémoire. Il est
performant tout en étant portable. Enfin, il dispose d'un riche
environnement de développement.
Objective CAML n'a jamais fait l'objet d'une présentation au << grand
public >>. C'est la tâche à laquelle se sont attelés les auteurs en
donnant à cet ouvrage trois objectifs :
-
Décrire de manière approfondie le langage Objective CAML, ses
bibliothèques et son environnement de développement.
- Montrer et expliquer quels sont les concepts qui se cachent
derrière les styles de programmation utilisables avec Objective CAML.
- Illustrer par de nombreux exemples comment Objective CAML peut servir
de langage de développement pour différentes familles
d'applications.
Le but des auteurs est de fournir des éléments de choix entre
les différents styles de programmation et les différentes
possibilités d'organisation d'un programme pour, en adéquation
avec un problème donné, obtenir une maintenance facilitée et une
bonne réutilisabilité des composants logiciels développés.