Université de Mons-Hainaut—                                Service                                d'Analyse
Numérique[Intranet]Académie
Universitaire Wallonie-Bruxelles
[UMH] La recherche
 L'enseignement
 Équipe &
adresse
 Ressources
 Institut
  
 
 
 
 
 
 
 
 
 
 
 
 
 

Ressources
[up]

                       

[up]Le langage O'Caml

Objective Caml est un langage de programmation, fonctionnel et fortement typé, de la famille ML. L'implémentation est due à l'INRIA. OCaml est intéressant pour le calcul scientifique étant donné sa vitesse raisonnable, ses structures de données évoluées et sa possibilité d'interfacage simple avec d'autres langages (C, C++, Fortran,...). L'article « Numerical Software Development with Functional Languages » montre l'intérêt du style fonctionnel pour des applications scientifiques. Cet exposé montre qu'OCaml est aussi utilisé comme langage cible pour compiler des langages dynamiques dans le cadre d'applications scientifiques — mais dans ce cas, pourquoi ne pas écrire son code en OCaml directement ! Pour se convaincre de l'efficacité (tant en temps de développement qu'en vitesse d'exécution) d'OCaml, vous pouvez constater des programmes en OCaml font souvent partie des gagnants des ICFP Programming Contest ou consulter The Great Computer Language Shootout (à prendre avec le sel qui s'impose).

Pour apprendre OCaml vous pouvez bien sûr consulter le manuel (ou sa version améliorée pour OCaml 3.08), mais nous vous recommendons de commencer par le livre « Développement d'applications avec OCaml » [english translation] d'Emmanuel CHAILLOUX, Pascal MANOURY et Bruno PAGAN ou de suivre quelques tutoriels et exemples. Voyez aussi les tutoriels de la bosse Caml, en particulier celui de Thomas Fischbacher. Consultez ces quelques notes pour l'optimisation de programmes, en particulier scientifiques. De manière plus générale, vous pouvez aussi vous inspirer des « Tutorial Papers in Functional Programming » (mais il faut les traduire en Caml...).

Pour les scientifiques, nous vous recommandons la lecture d'Objective CAML for Scientists.

Si Emacs est votre éditeur favori, nous vous recommandons d'utiliser le mode Tuareg. Pour compiler vos programmes, le Makefile générique pour OCaml, l'OCamlMakefile de Markus MOTTL ou OCamake de Nicolas CANNASSE peuvent vous être utiles.

Si vous voulez connaître les diverses contributions (« packages ») à OCaml, consultez The Caml Humps ou The O'Caml Link Database. En ce qui concerne les applications « scientifiques », citons entre autres :

  • LACAML une interface aux librairies BLAS and LAPACK (calcul matriciel).
  • le module FFTW est une interface à FFTW, une librairie réputée pour le calcul de transformées de Fourier ;
  • Plusieurs bibliothèques « graphiques » sont disponibles, en particulier Graphics qui est inclue dans la distribution, Ocamlplot une interface à la librairie libplot, MLgraph une librairie de création d'images à partir d'objets structurés (on part de graphismes simples qu'on combine...) et CamlImages une bibliothèque de base pour la manipulation d'images (lit et écrit dans divers formats). Pour des graphes scientifiques, une interface à Gnuplot est disponible ;
  • LablGL une interface avec OpenGL,...
  • VRcaML permet de décrire et de manipuler des objets en trois dimensions, puis de les traduire en VRML.
  • FOC est un environnement pour développer des programmes certifiés de calcul formel (voir aussi le papier « Polymorphic Data Types, Objects, Modules and Functors : is it too much ? ») ;

Quelques liens supplémentaires :

Les projet Beseme et TeachLogic visent à produire des logiciels plus fiables à travers une éducation mathématique couplée à la programmation dans des langages fonctionnels. Vous pouvez aussi consulter la page suivante d'informations générales sur l'usage des langages fonctionnels pour l'éducation.


Créé le : 1er janvier 2001
Modifié le : 8 octobre 2008
Créé avec TEX4ht


Webmaster : Christophe Troestler[up]http://math.umh.ac.be/an/caml.php



 [Debian]    [Best viewed
with any browser]    [Valid XHTML 1.0!]    [No ePatents]