[[caml_light]]
Piste: » caml_light
Caml Light
Caml Light est le principal langage enseigné en classe préparatoire.
Installation
La version disponible sur le site de l'INRIA ne fonctionne pas correctement sur Linux : elle ne charge pas la librairie "graphics". Grâce au travail de François Boisson ( fran.b) on peut enfin l'utiliser !
Les paquets existent en version 0.77
| Dapper | Hardy | Intrepid | Jaunty | |
|---|---|---|---|---|
| 32 bits | .deb | .deb | .deb | .deb |
| 64 bits | - | .deb | .deb | .deb |
et en version 0.80 ou (pour Hardy, Jaunty et Karmic) 0.81
| Hardy | Intrepid | Jaunty | Karmic | |
|---|---|---|---|---|
| 32 bits | .deb | .deb | .deb | .deb |
| 64 bits | .deb | .deb | .deb | .deb |
Ces paquets contiennent le mode tuareg pour emacs. La version 0.81 corrige entre autres un bug entraînant un segfault dans la librairie graphique pour la fonction text_size.
Il peuvent aussi s'installer par apt-get via le dépôt
deb http://boisson.homeip.net/ubuntu/ hardy divers
NB : Remplacez "hardy", par la version que vous utilisez (parmi intrepid/jaunty/karmic).
Utilisation avec la librairie "graphics"
Pour lancer caml avec la librairie "graphics", il faut lancer:
camllight camlgraph
Une fois lancé, il faut commencer par :
load_object "graphics";;
et enfin le fameux
#open "graphics";;
autre particularité pour lancer une fenêtre il faut désormais taper :
open_graph " 800x600";;
Surtout ne pas oublier l'espace après les premiers guillemets!
Voilà vous êtes équipé pour programmer en CaML!!
Exemple
load_object "graphics";; #open "graphics";; open_graph " 100x50";; moveto 15 20;; draw_string "!!BONJOUR!!";;
Une commande pour compiler le fichier toto.ml
camlc -custom unix.zo graphics.zo -lunix -lgraph -ccopt -L/usr/X11R6/lib -lX11 -o toto toto.ml
Editeur de texte avec caml light
Gedit
Gedit est un très bon éditeur de texte pour faire des programmes en Caml Light.
Coloration syntaxique
Pour colorier le texte vous pouvez aller dans Affichage > Mode de coloration > Source > Objective Caml
Lancer vos programmes Caml dans un panneau inférieur
- Commencez par activer le greffon via Édition > Préférences > onglet Greffons > Cocher Outils externes.
- Allez ensuite, dans Outils > Outils externes. Faites "Nouveau", et rentrez ce que vous voulez en nom, description et raccourci clavier. En "Entrée" (ou "Input"), choisissez "Document actuel". En "Sortie" (ou "Output"), choisissez "Afficher dans le panneau inférieur". En "Applicability", choisissez "Tous les documents".
- En commande, trois possibilités :
- mettre
#!/bin/sh cat "$GEDIT_CURRENT_DOCUMENT_PATH" | camllight
(les guillemets permettent d'empêcher que d'éventuels espaces contenus dans le chemin de votre fichier actuel soit interprétés comme des séparateurs de commandes).
- mettre
tee fichier_de_sauvegarde.ml | camllight
(par exemple tee /media/disque_externe/fichier.ml | camllight ou alors tee /home/utilisateur/fichier.ml). Une fois cela effectué, vous pouvez rentrer votre programme en caml light et pour l'exécuter, lancer la commande que vous avez créé précédemment.
Si vous ne souhaitez pas enregistrer automatiquement à chaque exécution, rentrez en commande uniquement camllight
- mettre
#!/bin/sh i=0 for file in $(ls *$GEDIT_CURRENT_DOCUMENT_NAME-*.ml|sort -r) do let i=1+$i if [ $i -ge 15 ] then rm $file fi done echo $(echo $GEDIT_CURRENT_DOCUMENT_PATH); tee $(echo $GEDIT_CURRENT_DOCUMENT_NAME)-$(date +%s).ml | camllight;
Cette commande fonctionne sur le même principe que la précédente, sauf qu'elle enregistre chaque sauvegarde indépendamment des autres en rajoutant à chaque sauvegarde un numéro. Plus le numéro est grand, plus la sauvegarde est récente. Et en plus, cette commande supprime les sauvegardes trop anciennes( elle conserve uniquement 15 sauvegardes au maximum).
Emacs
Pour faire des programmes avec caml light, on peut aussi utiliser emacs. Le paquet contient par défaut le mode Tuareg et configure automatiquement Emacs. Pour l'utiliser il suffit d'éditer un fichier avec l'extension .ml ou bien de faire Alt+x puis
tuareg-mode
Emacs se mettra en mode caml. L'évaluation du buffer se fait par Ctrl-c, Ctrl-b. L'évaluation de la fonction/expression sur laquelle est le curseur se fait par Ctrl-x, Ctrl-e.
On peut aussi installer caml-mode pour emacs.
Lancer emacs et faire Alt-x puis taper
caml-mode
Ensuite, faire la procédure caml dans l'éditeur de texte emacs et pour l'évaluer, faire Ctrl-c,Ctrl-e. Puis rentrer camllight dans la barre du bas d'emacs.
Le contenu de ce wiki est sous licence : CC BY-SA v3.0

