Introduction à Caml, langage pédagogique développé par l’INRIA

Caml, Categorical Abstract Machine Language, est un langage de programmation orienté objet, fonctionnel ou même impératif. Il est développé depuis 1985 par l’INRIA, conçu pour créer des programmes sécurisés et fiables. Son style fonctionnel le rapproche de l’écriture mathématique grâce à la récursivité et au filtrage par motif.

Caml est aussi un langage fortement typé : chaque élément du programme possède un et un seul type. Ainsi ‘25 + 3,6’ renverra une erreur. Cela diminue la souplesse du langage mais le rend plus sûr d’utilisation. Ces types sont connus et vérifiés automatiquement lors de la compilation, c’est l’inférence des types. Cela permet une programmation générique : on définit des algorithmes qui peuvent utiliser des données de types différents.

Caml se divise en deux variantes, OCaml et Caml Light, et c’est cette dernière que nous utiliserons ici. C’est une version légère donc portable de Caml, qui n’est plus développée mais reste adaptée au milieu pédagogique.

Les exemples suivants illustrent les principes de base de Caml Light, une instruction tapée est terminée par ‘;;’.

Déclaration de constantes et Illustration du typage fort

Addition avec 2 types différents impossible. Pour additionner 2 int on utilisera + et pour additionner 2 float, on utilisera ‘+.’

Déclaration d’une fonction, avec illustration de l’inférence des types.

‘*’ correspond à la multiplication de deux entiers. Caml nous informe que la fonction prend en paramètre un entier et en ressort également un entier. Pour 2 float on utilisera ‘*.’.

Les fonctions print sont différentes en fonction du types de ce que l’on veut afficher à l’écran.

Unit = () signifie qu’on ne renvoie rien.

Utilisation de la récursivité, structure du if.

On crée facilement une fonction ‘factoriel’ récursive. On voit aussi la structure du if :

if conditions then action1 else action2;;

Pour résumer, Caml Light est un langage à la syntaxe facile à comprendre. Sa prise en main est rapide, et il est très utile pour résoudre des problèmes liés aux mathématiques grâce à son écriture fonctionnelle.

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.