English version
Accueil     À propos     Téléchargement     Ressources     Contactez-nous    

Ce site est rarement mis à jour. Pour les informations les plus récentes, rendez-vous sur le nouveau site OCaml à l'adresse ocaml.org.

FAQ - Généralités

Qu'est-ce que Caml ?
Caml est un langage de programmation. C'est un langage fonctionnel car les briques de base des programmes sont les fonctions. C'est un langage fortement typé, ce qui signifie que les objets manipulés appartiennent à un ensemble identifié par un nom qu'on appelle son type. En Caml, les types sont gérés et manipulés par la machine, sans intervention de l'utilisateur (types synthétisés). Le langage est disponible sur à peu près toutes les machines Unix (dont les systèmes Linux et MacOS X) ainsi que sur les PCs sous Windows. Un bref tour d'horizon des principales caractéristiques de Caml.
Que signifie le nom « Caml » ?
« Caml » est un acronyme en langue anglaise : « Categorical Abstract Machine Language », c'est-à-dire langage de la machine abstraite catégorique. La CAM est une machine abstraite capable de définir et d'exécuter les fonctions, et qui est issue de considérations théoriques sur les relations entre la théorie des catégories et le lambda-calcul. Le premier compilateur du langage générait du code pour cette machine abstraite (en 1984).
La deuxième filiation de ce nom est ML (acronyme pour Meta Language) : Caml est aussi issu de ce langage de programmation crée par Robin Milner en 1978, et qui servait à programmer les tactiques de preuves dans le système de preuves LCF.
Doit-on écrire « Caml » ou « CAML », et « OCaml », « Ocaml » ou « OCAML » ?
On écrit Caml et OCaml.
« Caml » est un acronyme en langue anglaise: « Categorical Abstract Machine Language ». Comme tout acronyme, il devrait s'écrire en lettres capitales comme INRIA ou SNCF, mais ce nom tout en capitales est trop «mastok» et inélégant. Le same principe s'applique pour OCaml ; nous capitalisons toutefois le « C » pour des raisons de cohérence.
Est-ce un langage compilé ou interprété ?
Caml est un langage compilé. Cependant tous les compilateurs Caml proposent une boucle d'interaction « toplevel », qui ressemble à s'y méprendre à un interprète. En effet dans le système interactif, l'utilisateur tape des morceaux de programmes (des « phrases » Caml) qui sont traitées instantanément par le système, qui les compile, les exécute et écrit les résultats à la volée.
Quelles sont les différences entre Caml V3.1, Caml Light, et OCaml ?
Il s'agit de différentes implémentations de Caml qui ont été développées successivement à l'INRIA. Ces systèmes on en commun de très nombreuses fonctionalités puisqu'ils implémentent tous le noyau du langage Caml; de telle sorte que la syntaxe de base est à peu près la même. Cependant, ils possèdent chacun leurs propres extensions du langage de base.
Caml V3.1 n'est plus maintenu ou distribué. Caml Light n'est plus développé, mais toujours maintenu. De par son statut très stable, il est activement utilisé pour l'enseignement. La plupart des autres utilisateurs utilisent maintenant OCaml, la variante la plus récente du langage, et nous vous invitons à utiliser OCaml dans vos nouveaux développements. Voyez notre bref historique du langage Caml.
Comment contacter les développeurs de Caml ? Comment signaler un bogue dans les compilateurs ?
Veuillez consulter cette page.