Présentation
Auteur(s)
-
Guy COUSINEAU : Professeur à l’université Denis-Diderot
Lire cet article issu d'une ressource documentaire complète, actualisée et validée par des comités scientifiques.
Lire l’articleINTRODUCTION
Le langage CAML est développé en France par l’INRIA. Il fait partie d’une famille de langages baptisée ML dont un autre exemple est le langage SML développé aux États-Unis par les Bell labs. Plus généralement, il se rattache à la famille des langages fonctionnels dont font aussi partie LISP et SCHEME. Il se distingue toutefois assez nettement de ces langages par son typage et sa syntaxe.
Les principaux attraits de CAML sont la rapidité de développement et la sureté de la programmation. La richesse et la simplicité de ses structures de données ainsi que la puissance d’expression du modèle fonctionnel en font un outil bien adapté au développement rapide d’applications de nature symbolique. Par ailleurs, son système de types et de modules favorise la correction et réduit de façon importante les phases de mise au point.
CAML est issu du monde de la recherche et les principales applications qui ont été réalisées en CAML à ce jour sont des logiciels expérimentaux comme des démonstrateurs automatiques et autres outils d’aide à la vérification de logiciels. Il est très utilisé aussi pour l’enseignement de l’informatique dans les universités et a été choisi en 1995 pour la nouvelle option informatique des classes préparatoires.
En revanche, CAML n’a pas encore réussi de véritable percée dans le monde industriel où pourtant il pourrait apporter des gains de productivité importants. Cela vient peut-être de ce que les développeurs ont d’abord dû se concentrer sur les problèmes d’efficacité liés à l’allocation et à la récupération automatique de mémoire pour donner à CAML des performances équivalentes à celles des langages couramment utilisés comme C ou C++. Une fois ces problèmes résolus de façon satisfaisante, il est devenu clair que le principal problème résiduel était l’interfaçage de CAML, c’est-à-dire la facilité d’intégrer des modules développés en CAML à une chaîne classique de développement logiciel. De ce point de vue, CAML a maintenant atteint sa maturité et c’est aux équipes industrielles de déterminer quelle sera la place de ce type de langages dans les développements logiciels.
Quelle que soit à l’avenir la place du langage CAML lui-même, il semble, en tout cas, raisonnable de penser que les idées introduites par les langages de la famille ML sont suffisamment novatrices pour avoir une influence importante sur la conception des futurs langages de programmation.
DOI (Digital Object Identifier)
Cet article fait partie de l’offre
Technologies logicielles Architectures des systèmes
(238 articles en ce moment)
Cette offre vous donne accès à :
Une base complète d’articles
Actualisée et enrichie d’articles validés par nos comités scientifiques
Des services
Un ensemble d'outils exclusifs en complément des ressources
Un Parcours Pratique
Opérationnel et didactique, pour garantir l'acquisition des compétences transverses
Doc & Quiz
Des articles interactifs avec des quiz, pour une lecture constructive
Présentation
2. Description du noyau
Le langage CAML existe actuellement en deux versions, CAML LIGHT et OBJECTIVE CAML. La version OBJECTIVE CAML est la plus récente, elle comporte certains traits qui n’existent pas dans CAML LIGHT comme les objets et les modules fonctionnels et elle dispose de compilateurs plus performants. Cependant, en ce qui concerne le noyau fonctionnel décrit dans ce paragraphe, les langages sont très proches. La syntaxe utilisée ici est celle d’OBJECTIVE CAML.
Les deux versions comportent à la fois des compilateurs produisant des exécutables à partir de fichiers source et un système interactif. Les exemples qui suivent se présentent exactement comme s’ils avaient été entrés dans le système interactif. Le symbole d’invite (prompt) est le symbole # (dièse). Le texte entré par l’utilisateur se termine conventionnellement par deux points-virgules. La ligne qui suit est la réponse du système : cette réponse comporte un type et une valeur. Ce sont respectivement le type synthétisé et la valeur calculée de l’expression entrée par l’utilisateur.
2.1 Expressions et fonctions
CAML possède les types de base
(entier),
(flottant),
(booléen)
(caractère) et
(chaîne de caractères). Les exemples suivants montrent quatre expressions utilisant quelques-uns de ces types de base. Le symbole ^ représente la concaténation de chaînes.
Cet article fait partie de l’offre
Technologies logicielles Architectures des systèmes
(238 articles en ce moment)
Cette offre vous donne accès à :
Une base complète d’articles
Actualisée et enrichie d’articles validés par nos comités scientifiques
Des services
Un ensemble d'outils exclusifs en complément des ressources
Un Parcours Pratique
Opérationnel et didactique, pour garantir l'acquisition des compétences transverses
Doc & Quiz
Des articles interactifs avec des quiz, pour une lecture constructive
Description du noyau
BIBLIOGRAPHIE
-
(1) - BARENDREGT (H.P.) - The lambda-calculus : its syntax and semantics. - North Holland, 1987.
-
(2) - CARDELLI (L.) - The functional abstract machine. - Rapport de recherche no 107, Bell labs, 1983.
-
(3) - COUSINEAU (G.), MAUNY (M.) - Approche fonctionnelle de la programmation. - Édiscience, 1995.
-
(4) - DOLIGEZ (D.) - Conception, réalisation et certification d’un glaneur de cellules concurrent. - Thèse de Doctorat, Université Paris VII, 1994.
-
(5) - HARDIN (T.), DONZEAU-GOUGE-VIGUIÉ (V.) - Concepts et outils de programmation. - InterÉditions, 1992.
-
(6) - LANDIN (P.J.) - The mechanical evaluation of expressions. - Computer Journal, vol. 6, 1964, pp. 308-320.
-
...
DANS NOS BASES DOCUMENTAIRES
ANNEXES
L’ensemble des compilateurs et environnements de CAML est disponible sur le serveur général de l’INRIA : http://www.inria.fr
HAUT DE PAGECet article fait partie de l’offre
Technologies logicielles Architectures des systèmes
(238 articles en ce moment)
Cette offre vous donne accès à :
Une base complète d’articles
Actualisée et enrichie d’articles validés par nos comités scientifiques
Des services
Un ensemble d'outils exclusifs en complément des ressources
Un Parcours Pratique
Opérationnel et didactique, pour garantir l'acquisition des compétences transverses
Doc & Quiz
Des articles interactifs avec des quiz, pour une lecture constructive