Dernière modification le 7 juillet 2004.
Exemples de programmes
Objective Caml
Ce répertoire contient des exemples de programmes Objective Caml.
Les exemples peuvent soit être compilés et exécutés comme des
programmes indépendants (taper make
dans le
sous-répertoire); si la vitesse de calcul importe, vous pouvez aussi
taper make opt
pour obtenir un exécutable produit par le
compilateur optimisant. Vous pouvez enfin les exécuter directement dans le
système interactif ocaml
. Après avoir lancé le système
interactif, taper
#use "loadall.ml";;
dans le répertoire approprié.
Remarquez que les programmes graphiques doivent être exécutés avec
un système interactif qui contienne la librairie graphique, ce que l'on
obtient très facilement en fabriquant la commande ocamlgraph
par l'appel de ocamlmktop -custom -o ocamlgraph graphics.cma
.
Les exemples marqués d'une astérisque (*)
sont issus du
livre ``Le langage Caml'', de Pierre Weis et Xavier Leroy (Dunod,
1999). Les messages et les identificateurs sont alors en français et
contiennent des lettres accentuées (codage ISO 8859-1). Vous devez
donc disposer d'un système supportant les caractères 8 bits pour lire ces
exemples.
Les exemples marqués (G) supposent que la librairie graphique (contenue
dans le répertoire contrib/libgraph
de la distribution) a
été installée.
Exemples en un fichier
Les sous-répertoires sont les suivants:
- basics:
Un ensemble d'exemples simples à légèrement avancés.
Voir le fichier fra.html du répertoire.
Outre des programmes de quelques lignes genre Hello
World!
, le répertoire contient des exemples de
programmation fonctionnelle (fibonacci, le crible d'Eratosthène)
et de programmation impérative (par exemple l'utilitaire Unix
wc
).
- colwheel: (G)
La roue des couleurs (l'espace des couleurs en coordonnées HSV).
Il faut au moins 256 couleurs pour que l'effet soit joli.
- spirals: (G)
Exploration d'une famille de courbes amusantes. (Utilisez spir
sur un écran couleur et spir-bw sur un écran noir et blanc.)
- showsort: (G)
Animation graphique d'algorithmes de tri.
- hanoi: (*)(G)
Les tours de Hanoi animées. Utilise les listes et les chaînes.
- doctor: (*)
An (English-speaking) clone of Eliza.
- docteur: (*)
Un clone d'Eliza.
Interface graphique
Nous présentons des exemples variés d'interfaces utilisateur
utilisant les outils de Caml/Tk (basé sur TCL/TK).
- camltk: (*)
Un ensemble de programmes pour apprendre à utiliser
l'interface graphique Caml/Tk (GUI). Depuis les programmes
très simples («Bonjour tout le monde!»), jusqu'au jeu tétris
interactif complet. Certains exemples proviennent du livre ``Le
langage Caml'', par Pierre Weis et Xavier Leroy
(InterEditions, 1999). Voir le fichier eng.html dans le répertoire.
Programmes modulaires
Ces programmes sont dans les répertoires correspondants. Ce sont
des applications complètement indépendantes, munies d'un Makefile qui
gère leur recompilation automatique. Ces exemples peuvent être
difficiles à appréhender.
- calc:
Un calculateur de bureau simplifié qui illustre l'utilisation
d'un analyseur syntaxique écrit à l'aide de camllex et camlyacc.
- picomach: (*)
Un assembleur et simulateur de la picomachine, un
processeur RISC simplifié.
- grep: (*)
Expressions régulières et automates.
- compress: (*)
Compression et décompression de fichiers par la méthode
de Huffman.
- demonstr: (*)
Un vérificateur de tautologies.
- minicaml: (*)
Un interprète et contrôleur de types pour un sous-ensemble
de Caml.
- asl:
Implémentation d'un petit langage de programmation
fonctionnelle A Small Language, décrit dans la
partie 3 du livre ``Functional Programming using Caml Light'',
par Michel Mauny et Guy Cousineau.
- minilogo: (*) (G)
Un interprète pour un petit langage avec une tortue graphique.
- pascal: (*)
Un interprète et compilateur pour un sous-ensemble de Pascal.
Le compilateur génère du code pour la picomachine
décrite par le programe suivant.
- kb:
La procédure de complétion de Knuth-Bendix pour les systèmes
de réécriture de termes.
Issu des notes de cours de Gérard Huet.
Le répertoire config
ne contient pas d'exemples mais
les fichiers de configuration qui engendrent les
Makefiles
des différents répertoires.
Fichier créé le 20 mai 2002.