Applications réalisées en Objective CAML
Un certain nombre d'applications ont été réalisées en Objective CAML. Nous
ne parlerons que des applications << publiques >>, c'est-à-dire que l'on
peut utiliser soit gratuitement soit en les achetant.
Comme les autres langages fonctionnels, Objective CAML est un bon langage
d'implantation de compilateurs. Le bootstrap1 du compilateur ocaml en est
un exemple probant. De même de nombreuses extensions au langage ont
été apportées, comme vu précédemment pour la programmation parallèle,
mais aussi sur le typage comme O'Labl (dont une partie est en cours
d'intégration en Objective CAML, voir annexe B) ou sur les
unités physiques.
Les liens vers ces applications se retrouvent sur la
<< bosse du chameau >>.
La deuxième spécialité d'Objective CAML concerne les systèmes d'aide à
la preuve. Le développement majeur en ce domaine est le logiciel
Coq qui accompagne quasiment depuis son origine l'évolution de
Caml. Historiquement, ML a été conçu comme langage de manipulation
du système LCF (Logic for Computable Functions), avant de
devenir indépendant de cette application. Il est donc naturel de le
retrouver comme langage d'implantation d'un important système d'aide à
la preuve.
Un troisième domaine d'application concerne le parallélisme (voir
page ??) et la communication dont un bon exemple est
le système Ensemble.
Lien
http://www.cs.cornell.edu/Info/Projects/Ensemble/
Une liste, non exhaustive, d'applications significatives développées en
Objective CAML est maintenue sur le site Caml de l'Inria :
Lien
http://caml.inria.fr/users_programs-eng.html
Citons en particulier hevea qui est un traducteur LATEX vers
HTML que nous avons utilisé pour réaliser la version HTML
de ce livre qui se trouve sur le cédérom l'accompagnant.
Lien
http://pauillac.inria.fr/~maranget/hevea/
Quoique d'importance, les applications que nous venons de citer ne
représentent pas ce, qu'en début de ce chapitre, nous avons
baptisé une << application phare >>. De même, elles n'explorent
pas un nouveau domaine de spécialité montrant la pertinence
d'utilisation d'Objective CAML. Il n'est pas évident que cet exemple puisse
être issu du monde académique. Il est plus probable qu'il vienne du
monde industriel, soit en liaison avec une normalisation du langage
(voire sa spécification formelle), soit pour les besoins d'applications
devant intégrer divers styles de programmation et de structuration du
logiciel.