Installation, configuration et utlisation de (ocaml) pour les TD de programmation fonctionnelle

Parmi les nombreuses solutions ci-dessous, l'utilisation d'emacs est celle à privilégier.

Depuis les salles informatiques de l'université (ou en ssh):

Solution basique : utilisation directe du toplevel

On peut bien sûr utiliser directement le toplevel ocaml. Il suffit d'ouvrir un terminal et de taper la commande ocaml : On est alors dans le toplevel. Ctrl+D permet de quitter le toplevel. Ctrl+C permet d'interrompre la saisie ou l'interprétation d'une ligne. Vous remarquerez cependant que ce mode d'édition est fort peu pratique : il est impossible de réutiliser une ligne validée, de revenir en arrière, les copier-coller sont laborieux ... Bref ce n'est pas la meilleure façon d'utiliser ocaml ! Si vous tenez à utiliser le toplevel, il est préférable de le lancer avec la commande ledit ocaml, qui améliore les capacités d'édition et donne la possibilité de rappeler des lignes déja validées. Notez cependant que l'utilisation du toplevel ne permet pas la sauvegarde de fichiers et reste donc réservée à des petits tests. Pour l'écriture de vrais programmes, les solutions suivantes sont préférables.

Executer ou charger dans le toplevel un fichier édité par un autre programme

Une meilleure solution est l'écriture du programme à l'aide d'un éditeur de texte, suivie de son exécution depuis un terminal. Crée par exemple un fichier td1.ml avec votre éditeur de texte préféré, enregistrez ce fichier, puis depuis un terminal, en vous plaçant dans le dossier contenant le fichier que vous venez d'éditer (utilisez la commande cd), lancez le toplevel (ocaml ou ledit ocaml). Dans le toplevel, tapez #use "td1.ml" ;; . Attention, il faut taper un # en plus de celui affiché par le toplevel. Le fichier td1.ml sera alors automatiquement chargé et évalué. On dispose ainsi d'un véritable éditeur ce qui est très appréciable pour la saisie de programmes complexes, en revanche on perd l'interactivité : la directive use doit être saisie après chaque modification du fichier source, et on ne peut pas évaluer celui-ci pas à pas.

Solution conseillée : utilisation du mode tuareg d'emacs

Il existe une alternative supérieure qui remédie à ce problème : l'éditeur de texte emacs s'interface parfaitement avec ocaml grâce au mode "tuareg". Mode d'emploi :

Télechargez le fichier tuareg.tar.gz, et décompressez le à la racine de votre répertoire personnel. On peut pour cela taper dans un terminal :

cd ~
wget "http://perso.crans.org/frenoy/caml2012/tuareg.tar.gz"
tar -xzvf tuareg.tar.gz
rm -f tuareg.tar.gz

Le dossier tuareg créé ne doit pas être déplacé.

Vous pouvez lire le fichier tuareg/README et plus généralement la documentation d'emacs (man emacs) pour une documentation très complète sur la configuration et l'utilisation d'emacs et du mode tuareg. Cependant cet éditeur est assez complexe à prendre en main, aussi je vous propose une configuration simplifiée : téléchargez le fichier emacs-conf.tar.gz et décompressez le à la racine de votre répertoire personnel. On peut pour cela taper dans un terminal :

cd ~
wget "http://perso.crans.org/frenoy/caml2012/emacs-conf.tar.gz"
tar -xzvf emacs-conf.tar.gz
rm -f emacs-conf.tar.gz

Le fichier .emacs crée ne doit pas être déplacé.

Le fichier tuareg-mode.pdf contient un condensé des raccourcis claviers les plus utilisés d'emacs ainsi que de ceux spécifiques au mode tuareg. Vous constaterez que ces raccourcis peuvent être compliqués pour les non initiés ! C'est pourquoi le fichier .emacs que vous venez d'installer dans votre dossier personnel définit des raccourcis claviers plus conventionnels :

f2 : ouvre un fichier existant ou créer un nouveau fichier (emacs demande de saisir un nom)
f3 : enregistre les modifications apportées au fichier en cours d'édition
Ctrl+C : copier la selection
Ctrl+X : couper la selection
Ctrl+V : coller la selection
Ctrl+entrée (mode tuareg seulement) : évalue la ligne courante (ie envoie la ligne courante à ocaml)
f5 (mode tuareg seulement) : évalue tout le fichier depuis le début
Ctrl+K (mode tuareg seulement) : tue ocaml (qui pourra être relancé)
Ctrl+Q (mode tuareg seulement): tue ocaml et ferme emacs

Ouvrir un fichier dont le nom finit par .ml (soit en utilisant f2 depuis emacs, soit en lançant directement la commande emacs nom.ml dans un terminal) active automatiquement le mode tuareg. La première fois que les raccourcis Ctrl+entrée ou f5 seront utilisés, emacs scindera la fenêtre en deux et lancera un interpréteur caml dans la moitié basse. Validez avec entrée lorsqu'emacs vous propose de lancer ocaml.

Attention, pensez à sauvegarder très régulièrement votre travail !

Depuis son ordinateur personnel :

Sous linux (solution adaptable à Mac OS X)

Installez ocaml et emacs à l'aide de votre gestionnaire de paquets (on peut utiliser MacPorts sous Mac OS X). Suivez alors la même démarche qu'en salle informatique.

Sous windows

Une première possibilité, relativement complexe mais efficace, est d'installer ocaml et emacs en suivant la documentation de leurs sites web respectifs pour l'installation sous windows, ce qui permet alors de travailler avec les mêmes outils qu'en salle informatique (voir aussi Cygwin pour un portage des outils unix sous windows).

Une autre possibilité, plus simple, est l'utilisation des outils écrits par Jean Mouric. Certains de ces outils fonctionnent aussi sous Mac OS X. Attention, veillez à bien utiliser ocaml et non pas caml light qui est une autre implémentation du language caml.

Se connecter à distance aux salles informatiques

Vous pouvez vous passez de l'installation de ocaml sur votre ordinateur personnel en vous connectant par ssh à saphyr.ens.math-info.univ-paris5.fr. Si vous êtes sous Linux ou Mac OS X, tapez dans un terminal :

ssh -X login@saphyr.ens.math-info.univ-paris5.fr

login est votre nom d'utilisateur. Saisissez votre mot de passe quand demandé. Vous vous retrouvez alors dans un terminal à partir duquel vous pouvez utiliser ocaml, en ayant accès à tous les documents de votre dossier personnel. Notez bien que l'option -X est nécessaire pour lancer des programmes utilisant X11, par exemple emacs en mode graphique.

Sous Windows, on peut utiliser PuTTY ou les outils cygwin.

Attention, en cas de coupure réseau vous serez déconnecté brutalement : pensez à sauvegarder très régulièrement votre travail !