Programmation OCaml
À mes heures perdues, je développe quelques bricoles, principalement
en OCaml, un langage fonctionnel disposant d'une
excellente bibliothèque standard et d'un compilateur (bytecode et
natif) qui peut rivaliser avec gcc.
Le code OCaml étant entièrrement portable, vous pouvez recompiler
le code ci-dessous sur toutes les plate-formes supportées par
OCaml : Linux, un grand nombre d'UNIX commerciaux, mais aussi
MacOS, Windows, etc.
(sauf lorsque l'on utilise une spécificité d'un système, comme
la bibliothèque SVGAlib de Linux).
Sauf mention explicite du contraire, tout le code disponible sur
cette page est distribué selon les termes de la GNU Library
General Public License version 2, avec une exception concernant
l'édition de lien, décrite dans le fichier
LICENSE.
À propos des liens ci-dessous :
- Les .ps sont des fichiers PostScript
produits à partir du source OCaml grâce à ocamlweb.
- Les .ml et .mli ont été produits avec l'outil caml2html
de Sébastien Ailleret (maintenant Martin Jambon).
- Cliquer sur le nom de la bibliothèque / de l'application pour télécharger.
- Lorsqu'un dépôt github ou un
paquet opam existe, il est indiqué entre parenthèses.
Structures de données
Bibliothèques
- Combine,
une bibliothèque de cominatoire
(avec Remy El Sibaïe)
(opam)
- Functory,
une bibliothèque de calcul distribué, inspirée par MapReduce
(avec Kalyan Krishnamani)
- OCamlgraph, une bibliothèque de
graphes pour OCaml
(github |
opam)
- Mlpost, une bibliothèque OCaml pour dessiner des
figures
(github |
opam)
- cgi :
une bibliothèque pour écrire des scripts CGI
(.mli)
- ocamlsvga :
interface pour de la bibliothèque Linux SVGAlib
- ocamlsdl :
interface pour de la bibliothèque graphique SDL;
inclus le support OpenGL, pour être utilisé par exemple avec
lablGL
Note : il existe un projet similaire plus avancé, OcamlSDL.sourceforge.net
- display :
visualisation de la représentation interne des valeurs Caml
(.ps |
.mli)
- hashcons :
tables de hash pour le hash consing
(.ps |
.mli |
github).
Cette technique est décrite dans
ce
papier.
Hset / Hmap:
Modules Ptset et Ptmap (voir ci-dessus)
spécialisés sur les valeurs hash-consées
(hset.mli |
hmap.mli).
- prtree :
pour imprimer des arbres à la manière de pstree
(.ps |
.mli)
- search :
codes fonctorisés pour les recherches en profondeur, en
largeur, et en approfondissement itératif
(.ps |
.mli)
Applications
- bibtex2html :
convertisseur de BibTeX vers HTML
- ocamlweb :
un outil de programmation litéraire pour OCaml
(opam)
- ocamlwc :
un programme pour compter les lignes de code et de
documentation dans du source OCaml
(.ps)
- yamlpp :
un pré-processeur HTML très simple,
inspiré par l'htmlpp de Nicolas Thiéry
Algorithmique
Jeux
Publications
Certaines de mes publications, ou matériel pédagogique, en rapport avec la
programmation OCaml. (Ma liste complète de publications se trouve
ici.)
Divers
J'aime cette définition du mot hacker tirée du
Jargon File:
Hacker: One who programs enthusiastically (even obsessively) or who enjoys programming rather than just theorizing about programming.
Quelques pointeurs
Détente
Jean-Christophe Filliâtre
(formatté avec yamlpp).