Objective Caml - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Utilisation

Le langage OCaml, issu des milieux de recherche, ne bénéficie pas de la puissance publicitaire de certains langages de programmation actuels. Il reste donc relativement peu connu du grand public informatique (ainsi que la plupart des langages fonctionnels), mais est cependant solidement implanté dans quelques niches dans lesquelles les qualités du langage contrebalancent son relatif manque de publicité et de support.

Enseignement

La nature multi-paradigme de OCaml et sa syntaxe légère en font un langage riche et apprécié par les enseignants, qui y voient un moyen d'initier leurs étudiants à différents aspects de la programmation dans un cadre unifié. En particulier, Caml (OCaml ou son petit frère Caml Light) est le langage utilisé par la plupart des classes préparatoires françaises, dans l'optique des épreuves d'informatique des concours d'entrée aux grandes écoles. Il est aussi utilisé dans de nombreuses universités, en France (pour des raisons historiques) mais aussi dans le reste du monde, par exemple en Allemagne, aux États-Unis ou au Japon.

Il souffre dans le milieu universitaire de la concurrence avec son cousin éloigné Haskell, préféré dans certains cours de programmation fonctionnelle car il ne reprend aucun concept de la programmation impérative.

Recherche

OCaml est un langage assez utilisé dans le milieu de la recherche. Historiquement, les langages de la branche ML ont toujours été étroitement lié au domaine des systèmes de preuves formelles (le ML initial de Robin Milner est ainsi apparu pour être utilisé dans le système de preuves LCF). OCaml est le langage utilisé par un des logiciels majeurs du domaine, l'assistant de preuves Coq.

OCaml est bien évidemment présent dans de nombreux autres domaines de la recherches informatiques, dont la recherche en langages de programmation et compilateurs (voir la section ), ou le logiciel de synchronisation de fichier Unison.

Industrie

Malgré sa communication relativement timide, OCaml a acquis une solide base d'utilisateurs dans des domaines spécifiques de l'industrie. Ainsi, l'industrie aéronautique utilise OCaml pour sa sûreté de programmation et son efficacité pour la formulation d'algorithmes complexes. On peut citer dans ce domaine le projet Astrée (Analyse Statique de logiciels Temps-RÉel Embarqués), utilisé entre autres par la compagnie Airbus. Le compilateur du langage de programmation temps-réel synchrone Lustre, utilisé pour les systèmes critiques tels les systèmes d'avionique des Airbus ou de contrôle de certaines centrales nucléaires, est également écrit en OCaml.

OCaml est utilisé par des acteurs importants de l'industrie du logiciel, comme Microsoft, Intel ou XenSource, tous trois membres du Consortium Caml. Il trouve aussi des applications dans l'informatique financière, comme l'a montré l'entreprise Jane Street Capital, qui emploie de nombreux programmeurs OCaml, ou encore Lexifi, entreprise française, spécialisée dans la conception de langages de programmation dédiés à la finance, ayant d'ailleurs été récompensés internationalement.

Enfin, il est aussi utilisé par des projets libres généralistes, comme MLDonkey, GeneWeb, le client pour webradios Liquidsoap, la bibliothèque FFTW, ainsi que certains logiciels de l'environnement de bureau KDE. Enfin, les formules mathématiques du logiciel MediaWiki sont générées par un programme écrit en Ocaml.

Langages dérivés

De nombreux langages étendent OCaml pour lui ajouter des fonctionnalités un peu plus exotiques.

  • F# est un langage de la plateforme .NET développé par Microsoft Research, basé sur OCaml (et en partie compatible)
  • MetaOCaml ajoute un mécanisme de quotations et de génération de code au runtime, qui apporte des fonctionnalités de métaprogrammation à OCaml
  • Fresh OCaml (basé sur AlphaCaml, un autre dérivé de OCaml) facilite la manipulation de noms symboliques
  • JoCaml ajoute à OCaml un support du Join Calculus, orienté vers les programmes concurrents ou distribués
  • OcamlP3L apporte une forme particulière de parallélisme, basée sur les « squelettes » (skeleton programming)
  • GCaml ajoute le polymorphisme ad-hoc à OCaml, permettant la surcharge des opérateurs ou un marshalling conservant les informations de typage
  • OCamlDuce permet au système de types de représenter des valeurs XML ou liées à des expressions régulières. C'est un intermédiaire entre OCaml et le langage CDuce, spécialisé dans la manipulation du XML
Page générée en 0.120 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales
Version anglaise | Version allemande | Version espagnole | Version portugaise