« Caml » : différence entre les versions
→Les extensions Caml : lien brisé |
→Les extensions Caml : à traduire |
||
Ligne 23 : | Ligne 23 : | ||
* {{en}} [http://jfla.inria.fr/2001/actes/07-furuse.ps Generic Polymorphism in ML]. |
* {{en}} [http://jfla.inria.fr/2001/actes/07-furuse.ps Generic Polymorphism in ML]. |
||
* {{fr}} {{lien brisé|url=http://www.pps.jussieu.fr/~henry/ojacare/|date=19 août 2016|titre=O'Jacaré}}, (basé sur camljava) : pour lancer un {{pas clair|''{{Langue|en|main}}''}} en [[Java (langage)|Java]]. |
* {{fr}} {{lien brisé|url=http://www.pps.jussieu.fr/~henry/ojacare/|date=19 août 2016|titre=O'Jacaré}}, (basé sur camljava) : pour lancer un {{pas clair|''{{Langue|en|main}}''}} en [[Java (langage)|Java]]. |
||
* {{en}} [http://caml.inria.fr/pub/docs/manual-ocaml/manual026.html Lex/Yacc] : générateurs de lexer et de parser, pour faire de l'analyse lexicale et syntaxique. |
* {{en}} [http://caml.inria.fr/pub/docs/manual-ocaml/manual026.html Lex/Yacc] : générateurs de {{passage incompréhensible|lexer et de parser}}, pour faire de l'analyse lexicale et syntaxique. |
||
== Voir aussi == |
== Voir aussi == |
Version du 19 août 2016 à 08:22
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 style fonctionnel rapproche le langage Caml de l’écriture mathématique, notamment grâce à la récursivité et au filtrage par motif (pattern matching). Ce dernier, particularité de la famille ML, offre une syntaxe au cas par cas claire et lisible, et est aussi utilisé dans le rattrapage des exceptions, en particulier pour la gestion des erreurs. Le typage fort rend l’usage sûr mais moins souple pour le programmeur. Enfin, Caml pratique l’inférence de types pour déterminer automatiquement le type des variables et expressions et permet la généricité.
Descendant du langage ML, le Caml est développé depuis 1985 par les équipes Formel puis Cristal de l'Inria et l'a notamment été pendant cinq ans par le professeur Guy Cousineau[1] (université Paris Diderot). Il existe deux variantes principales de Caml.
- Caml Light est une ancienne version, légère, principalement utilisée en milieu pédagogique[N 1],[2]. Elle n’est plus développée et a été supplantée par OCaml.
- OCaml est la version la plus avancée et la branche de développement active du langage. Elle ajoute de nombreuses fonctionnalités, comme un système de modules beaucoup plus poussé et le support de la programmation orienté objet (reposant sur le duck typing) dont elle tire son nom.
Consortium
La conception et le développement du langage Caml ainsi que son environnement sont fédérés par un consortium dirigé par Inria.
Les extensions Caml
Il existe un grand nombre d'extension du Caml, permettant au langage de recouvrir le plus de concepts possibles.
- (en) PolyAML : a Polymorphic Aspect-oriented Functional Programming Language. Extension pour la programmation par aspect.
- (en) Aspectual Caml : an Aspect-Oriented Functional Language. Extension pour la programmation par aspect.
- (fr) MVC en OCaml.
- (en) OCamlDuce : XML et typage.
- (en) Meta-ocaml : types et macros.
- (en) Ocaml-templates : génération de code à partir des types.
- (en) FreshML : Programming with Binders Made Simple.
- (en) Generic Polymorphism in ML.
- (fr) « O'Jacaré »(Archive.org • Wikiwix • Archive.is • Google • Que faire ?), , (basé sur camljava) : pour lancer un main[pas clair] en Java.
- (en) Lex/Yacc : générateurs de lexer et de parser[incompréhensible], pour faire de l'analyse lexicale et syntaxique.
Voir aussi
Articles connexes
Liens externes
- (fr) Site officiel
- (fr) Cours de programmation en Caml pour débutants
- (en) A brief history of Caml (as I remember it)
- (fr) Exercices de programmation en Caml, avec corrigés
- (fr) Exercices en Caml avec corrigés
Notes & références
Notes
- Caml Light est enseigné en France dans les classes préparatoires, dans l’option informatique de la filière MPSI / MP.
Références
- Guy Cousineau - AERES - CV, consulté sur www.aeres-evaluation.fr le .
- note de service nº 2013-0020 du 4-11-2013