Introduction

abstraction concrète

L'objet

Soit une machine, que nous nommerons l'exécutant, capable de reconnaître un langage de programmation, l'objectif de la programmation consiste à rechercher une solution efficace et fiable à un problème posé et à le décrire, ainsi que la méthode de résolution choisie, dans le langage de l'exécutant.

Pour atteindre cet objectif le programmeur est soumis aux contraintes imposées par la syntaxe du langage de programmation et à la nécessité de gérer les ressources correspondant à l’architecture de l’exécutant. Son travail s'organise ensuite selon un principe de découpage en phases que l'on peut envisager de deux manières : La perspective de la programmation fonctionnelle offre la possibilité de séparer les aspects mathématiques et physiques de la programmation et de les traiter de façon indépendante : Le principe d'équivalence fonctionnelle considère que deux fonctions f et g sont équivalentes si elles ont même source (ensemble de définition), même objectif (ensemble d'arrivée), et même graphe. De ce concept découlent la notion d'abstraction du calcul interne à la fonction, et celle d'algèbre des programmes :

Le langage Caml

Quelques repères indispensables pour situer le langage Caml qui sert à la fois d’outil et de matière d’œuvre dans le manuel de programmation et les ateliers. Caml (Categorical Abstract Machine Language) appartient à l’ensemble des langages fonctionnels fortement typés à évaluation stricte, dérivés de la famille des langages ML.

Dans un langage fonctionnel, les programmes sont formés d'expressions, et l’exécution d’un programme correspond au calcul de la valeur des expressions qui le constituent, c’est l’évaluation.

Un langage fortement typé impose à chaque expression du langage d’appartenir à un seul type déterminé de ce langage, sans aucune ambiguïté possible. La déclaration de typage des expressions n'est pas requise, la synthèse des types réalise automatiquement la mise en correspondance des expressions avec le type correspondant à leur évaluation. Toute incompatibilité de type est détectée et signalée comme erreur.

Quelle version pour Caml ?

Les environnements de programmation Caml sont disponibles pour Unix, Macintosh, MSDOS et Windows.
En outre Caml existe en divers parfums tels que Caml Light (celui qui nous concerne ici) ou encore Objective Caml.
Dans chaque parfum, plusieurs versions ont été distribuées. Pour notre part, à ce jour, nous avons choisi d’utiliser Caml Light version 0.7 pour Windows. Toutefois, un certain nombre de nos programmes présentés ici, ont été réalisés sous MSDOS, à partir de la version 0.5, puis, avec la version 0.6. Dans chaque cas, la recompilation avec les versions plus récentes du langage, n’a posé aucune difficulté.

Aujourd'hui, l'évolution de la syntaxe du langage a fait vieillir le style programmation de certaines parties de programmes. Cependant, il m’a paru utile de conserver, quelques unes d’entre elles, telles qu’elles ont été conçues à l’origine, pour leur intérêt pédagogique dans la progression, malgré les simplifications éventuelles rendues possibles grâce aux enrichissements successifs du langage.

Où se procurer l’environnement de programmation en Caml ?

L’Institut National de la Recherche en Informatique et en Automatique (INRIA) distribue gratuitement l’environnement de programmation en langage Caml.

Adresse postale :

INRIA-UCIS DIFFUSION
Distribution de Caml Light
BP 105
F-78153 LE CHESNAY CEDEX

Indiquer clairement la version désirée, Macintosh ou PC, et joindre obligatoirement une enveloppe, portant vos noms et adresse, affranchie à quatre fois le tarif lettre en vigueur.

Site www de l’INRIA pour télécharger la distribution Caml Light

Adresse www : http://pauillac.inria.fr/caml/index-fra.html

dernière modification : 17/05/2008