Aller au contenu

Caml

Un article de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 15 novembre 2013 à 19:58 et modifiée en dernier par 90.1.47.141 (discuter). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.

Caml (prononcé camel, signifie Categorical Abstract Machine Language) est un langage de programmation généraliste conçu pour la sécurité et la fiabilité des programmes. Il se prête à des styles de programmation fonctionnelle, impérative et orientée objet. C'est de plus un langage fortement typé.

Le Caml est développé depuis 1985 par les équipes Formel puis Cristal de l'INRIA et notamment pendant cinq ans par le professeur Guy Cousineau[1] (Université Paris Diderot). Il existe deux implémentations de Caml :

  1. OCaml est l'implémentation la plus avancée,
  2. Caml Light est une implémentation légère, souvent utilisée dans les milieux pédagogiques. Caml est, dans sa version Caml Light, enseigné en option informatique dans la plupart des classes préparatoires aux grandes écoles, en filière MPSI / MP. Le style fonctionnel le rend relativement proche des mathématiques, notamment grâce à la récursivité, le typage fort rend son usage sûr mais moins souple pour le programmeur. De plus, la particularité des langages ML, à savoir la reconnaissance de motifs (pattern matching), permet une syntaxe au cas par cas claire et lisible dans les fonctions récursives. Elle est aussi utilisée dans le rattrapage des exceptions, en particulier pour la gestion des erreurs.

Consortium

La conception et le développement du langage Caml ainsi que son environnement sont fédérés par un consortium dirigé par l'INRIA.

Les extensions Caml

Il existe un grand nombre d'extension du Caml, permettant au langage de recouvrir le plus de concepts possibles.

  1. (en) PolyAML : A Polymorphic Aspect-oriented Functional Programming Language. Extension pour la programmation par aspect.
  2. (en) Aspectual Caml: an Aspect-Oriented Functional Language. Extension pour la programmation par aspect.
  3. (fr) MVC en OCaml.
  4. (en) OCamlDuce : XML et typage.
  5. (en) Meta-ocaml : types et macros.
  6. (en) Ocaml-templates : génération de code à partir des types.
  7. (en) FreshML: Programming with Binders Made Simple
  8. (en) Generic Polymorphism in ML
  9. (fr) O'Jacaré (basé sur camljava) pour lancer un main en Java
  10. (en) Lex/Yacc lexer and parser generators, pour faire de l'analyse lexicale et syntaxique.

Voir aussi

Articles connexes

  1. Haskell

Liens externes

  1. (fr) Site officiel
  2. (fr) Développement d'applications avec Objective Caml, livre O'Reilly en ligne (publié en 2002 mais reste très complet).
  3. (fr) Cours de programmation en Caml pour débutants
  4. (en) A brief history of Caml (as I remember it)
  5. (fr) Exercices de programmation en Caml, avec corrigés
  6. (fr) Exercices en Caml avec corrigés

Références

  1. Guy Cousineau - AERES - CV, consulté sur www.aeres-evaluation.fr le