Plan de l'ouvrage
Le présent ouvrage est constitué de quatre parties principales,
entourées de deux chapitres et agrémenté de deux annexes, d'une bibliographie,
d'un index des éléments du langage et d'un index des concepts de programmation.
-
Chapitre 1 :
- Ce chapitre est une rapide
description de l'installation de la version 2.04 du langage Objective CAML pour
les systèmes
les plus courants (Windows, Unix et MacOS).
- Partie I : Noyau du langage
-
La première partie est une présentation complète des éléments
de base du
langage Objective CAML. Le chapitre 2 est une plongée dans le
noyau fonctionnel du langage. Le chapitre 3 est le pendant
du précédent et décrit la partie impérative du langage. Le chapitre
4 compare les styles fonctionnel et impératif
<< purs >> puis présente leur utilisation conjointe. Le chapitre
5 présente la bibliothèque graphique. Le chapitre
6 expose trois applications : gestion
d'une base de données simple, un interprète d'un mini-Basic et un
jeu solitaire bien connu, le démineur.
- Partie II : Outils de développement
-
La deuxième partie de l'ouvrage décrit les différents outils pour la
réalisation d'applications. Le chapitre 7 compare
les différents modes de compilation que sont la boucle d'interaction
et les compilateurs en ligne de commande de code-octet et natif. Le
chapitre 8 présente les principales
bibliothèques fournies avec la distribution du langage. Le chapitre
9 explique les mécanismes de récupération automatique de
mémoire et détaille celui utilisé par Objective CAML. Le chapitre
10 explique l'utilisation des outils de mise au point et
d'analyse de programmes. Le chapitre 11 s'intéresse aux
outils d'analyses lexicale et syntaxique. Le chapitre
12 montre comment interfacer des programmes Objective CAML
avec C. Le chapitre 13 construit une
bibliothèque et une application. Cette bibliothèque offre des outils
pour la construction d'interfaces graphiques. L'application
est une recherche de chemins de moindre coût dans un graphe, son
interface graphique utilise la bibliothèque précédente.
- Partie III : Organisation d'applications
-
La troisième partie décrit les deux organisations d'un programme que
permettent les modules et les objets. Le chapitre 14
est une présentation des modules simples et paramétrés du langage. Le
chapitre 15 introduit l'extension objet d'Objective CAML. Le
chapitre 16 compare ces deux types
d'organisation et indique l'intérêt de leur mélange pour augmenter
l'extensibilité des programmes. Le
chapitre17 décrit deux applications
conséquentes : les jeux à deux joueurs qui mettent en oeuvre
plusieurs modules paramétrés utilisés pour deux jeux différents, et
une simulation d'un monde de robots montrant la communication entre
objets.
- Partie IV : Concurrence et répartition
-
La quatrième partie introduit les programmations concurrente et
répartie en détaillant la communication entre processus, légers ou
non, et sur le réseau Internet. Le chapitre 18 montre le
lien direct entre le langage et les bibliothèques système, en
particulier les notions de processus et de communication. Le
chapitre 19 amène l'indéterminisme de la programmation
concurrente en présentant les processus légers d'Objective CAML. Le chapitre
20 discute de la communication entre processus, via les
prises de communication réseau (sockets), dans le modèle de mémoire répartie.
Le chapitre 21 présente tout d'abord
une boîte à outils pour applications client-serveur. Elle est
utilisée ensuite pour étendre les robots de la partie précédente au
modèle client-serveur. Enfin, nous adaptons certains programmes déjà
rencontrés sous forme de serveur HTTP.
- Chapitre 22
- Ce dernier chapitre fait le point sur le
développement d'applications en Objective CAML et présente les applications
les plus connues des langages de la famille ML.
- Annexes
- La première annexe explique la notion de types cycliques
utilisée dans le typage des objets.
La deuxième annexe décrit les évolutions du langage présentes dans
la version expérimentale 2.99. Celles-ci seront probablement intégrées
dans les prochaines versions d'Objective CAML (3.xx).
Chaque chapitre comprend une présentation générale du thème abordé, un
plan du chapitre, les différentes sections de celui-ci, des énoncés
d'exercices à réaliser, un résumé et une ultime section intitulée
<< Pour en savoir plus >> qui indique les références bibliographiques
du thème abordé.