Présentation de Caml.. 2/10
CAMOS-CNAM / LWH Page 2 sur 26.
) Le langage CAML.
) Présentation générale.
- On prononce Caml avec le "ca" de café et le "mel" de melba.
- Caml est un acronyme qui signifie "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 des fonctions.
- On écrit généralement "Caml" avec un "C" majuscule et le reste en minuscule.
- C'est un langage de programmation à la fois facile à apprendre et très expressif.
- C'est un langage développé et distribué par l'INRIA depuis 1984.
- Il existe deux dialectes de Caml : Caml Light et Objective Caml. Caml light est un sous-
ensemble de d'objective Caml, plus spécialement adapté à l'enseignement et à
l'apprentissage de la programmation. En plus du cœur du langage de Caml Light,
Objective Caml comporte un puissant système de modules, des objets et un compilateur
optimisant.
- Caml est utilisé dans l'enseignement de la programmation principalement au CNAM,
pour l'option informatique des classes préparatoires aux grandes écoles, à l'Ecole
Polytechnique et à l'Ecole Normale Supérieure.
) Caractéristiques du langage.
- Sûreté. Caml est un langage très sûr. Le compilateur fait de nombreuses vérifications
avant la compilation et évite ainsi de nombreuses erreurs telles que la confusion de types
de données ou l'accès erroné à l'intérieur de données.
- Types de données. Caml propose la gamme des types de données classiques :
- Types de bases : entiers, flottants, booléens, caractères, chaînes de caractères.
- Types complexes : n-upplet, tableaux, listes, ensembles, tables de hachage, files,
piles, flux de données.
- En plus de ces types prédéfinis, Caml permet de définir de nouveaux types.
- Fonctions. Caml est un langage de programmation fonctionnel. On peut passer librement
des fonctions en argument ou en retourner comme résultat.
- Gestion de la mémoire automatisée et incrémentale. Caml offre une gestion automatique
de la mémoire. L'allocation ou la libération de mémoire est laissé à la charge du
compilateur. Il n'y a donc pas de corruption inattendue des structures de données
manipulées.
- Traits impératifs. Caml permet également la programmation impérative par le biais des
boucles, des variables...
- Modules. Caml propose une compilation séparée des fichiers.
- Interactivité. Caml propose un système interactif très pratique pour apprendre le langage
ou pour corriger ses programmes.
- Traitement des erreurs. Caml propose un mécanisme général de traitement des
exceptions, pour traiter ou corriger les erreurs ou les situations exceptionnelles.
- Polymorphisme. Certains types peuvent rester indéterminés. Ainsi les fonctions qui sont
d'usage général peuvent s'appliquer à n'importe quel type sans exception.