Présentation

Article

1 - PRINCIPES

2 - DESCRIPTION DU NOYAU

3 - TYPAGE ET MODULARITÉ

  • 3.1 - Synthèse de types
  • 3.2 - Modules

4 - CAML ET LA PROGRAMMATION CLASSIQUE

  • 4.1 - CAML et les pointeurs
  • 4.2 - CAML et les objets
  • 4.3 - Interfaçage avec C

5 - CAML ET L’ANALYSE SYNTAXIQUE

  • 5.1 - Flots
  • 5.2 - Filtrage de flots

6 - IMPLANTATION

7 - COMPARAISON AVEC D’AUTRES LANGAGES FONCTIONNELS

  • 7.1 - Autres langages de la famille ML
  • 7.2 - La famille LISP
  • 7.3 - Les langages fonctionnels « paresseux »

8 - CONCLUSION

| Réf : H3018 v1

CAML et l’analyse syntaxique
Langage CAML

Auteur(s) : Guy COUSINEAU

Date de publication : 10 févr. 1998

Pour explorer cet article
Télécharger l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !

Sommaire

Présentation

Auteur(s)

Lire cet article issu d'une ressource documentaire complète, actualisée et validée par des comités scientifiques.

Lire l’article

INTRODUCTION

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.

Cet article est réservé aux abonnés.
Il vous reste 95% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

DOI (Digital Object Identifier)

https://doi.org/10.51257/a-v1-h3018


Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(239 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

ABONNEZ-VOUS

Lecture en cours
Présentation

5. CAML et l’analyse syntaxique

On a déjà mentionné que CAML était un langage particulièrement bien adapté aux manipulations symboliques du fait qu’il permette de définir très simplement des syntaxes abstraites. Cette facilité ne prend tout son sens que si l’on dispose aussi de moyens commodes pour réaliser des interconversions entre syntaxes abstraites et syntaxes concrètes et, en particulier, de produire facilement des analyseurs lexicaux et syntaxiques. Pour cela, CAML fournit des générateurs d’analyseurs lexicaux et syntaxiques CAMLLEX et CAMLYACC fondés sur les utilitaires correspondants d’UNIX. Il fournit aussi un moyen plus original d’écrire des analyseurs par filtrage sur des flots de données.

5.1 Flots

Les flots sont fournis par le module qui déclare un type abstrait pour représenter les flots. Ceux-ci ont une syntaxe proche de celle des listes et des tableaux mais diffèrent de ceux-ci par le fait qu’il soit possible de les construire non seulement à partir d’éléments mais aussi à partir de flots préexistants. Les premiers sont précédés d’une apostrophe pour les distinguer des seconds.

Le flot contient les nombres 1,2,3,4 et 5 dans cet ordre.

On peut également construire un flot à partir d’une chaîne de caractère ou d’un canal d’entrée.

HAUT DE PAGE

5.2 Filtrage de flots

Le filtrage de flots permet de destructurer un flot afin d’écrire des analyseurs par combinaison d’analyseurs plus simples. L’écriture ...

Cet article est réservé aux abonnés.
Il vous reste 94% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(239 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

ABONNEZ-VOUS

Lecture en cours
CAML et l’analyse syntaxique
Sommaire
Sommaire

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

  1. 1 Fournisseurs

    1 Fournisseurs

    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 PAGE

    Cet article est réservé aux abonnés.
    Il vous reste 93% à découvrir.

    Pour explorer cet article
    Téléchargez l'extrait gratuit

    Vous êtes déjà abonné ?Connectez-vous !


    L'expertise technique et scientifique de référence

    La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
    + de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
    De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

    Cet article fait partie de l’offre

    Technologies logicielles Architectures des systèmes

    (239 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

    ABONNEZ-VOUS