OCaml Tutoriel
Démarrer avec OCaml
Recherche…
Remarques
Cette section fournit une vue d'ensemble de ce qu'est ocaml et pourquoi un développeur peut vouloir l'utiliser.
Il devrait également mentionner tous les sujets importants dans ocaml, et établir un lien avec les sujets connexes. La documentation de ocaml étant nouvelle, vous devrez peut-être créer des versions initiales de ces rubriques connexes.
Installation ou configuration
Installation d'OPAM
OPAM est un gestionnaire de paquets pour OCaml. Il construit et gère facilement les versions du compilateur et les bibliothèques OCaml.
La méthode la plus simple pour installer OPAM sur votre système d'exploitation consiste à utiliser un gestionnaire de packages pour votre système. par exemple apt-get, yum ou homebrew.
Instructions d'installation Mac OSX
Mettre à jour les formules homebrew et installer OPAM.
brew update
brew install opam
Instructions d'installation d'Ubuntu
add-apt-repository ppa:avsm/ppa
apt-get update
apt-get install ocaml opam
Compiler à partir de la source
wget http://caml.inria.fr/pub/distrib/ocaml-4.03/ocaml-4.03.0.tar.gz
tar xf ocaml-4.03.0.tar.gz
cd ocaml-4.03.0
./configure -prefix installation_path
make world.opt
make install
Initialisation OPAM
Une fois OPAM installé, lancez opam init et suivez les instructions.
Une fois cela fait, vous devriez être capable d'exécuter l'interpréteur OCaml à partir de votre shell.
$ ocaml
OCaml version 4.03.0
#
Votre premier programme en OCaml
Maintenant que la distribution OCaml est disponible sur votre système d'exploitation préféré, nous pouvons créer votre premier programme dans OCaml: le Hello World!
Nous avons différentes façons de lancer un programme OCaml.
Le REPL (toplevel)
Vous pouvez exécuter votre code de manière interactive avec le niveau supérieur . Avec OCaml toplevel , vous pouvez écrire et exécuter du code OCaml, sous forme de shell UNIX. Ensuite, le niveau supérieur vérifie immédiatement le type de votre code. Ainsi, vous pouvez rapidement et facilement tester certaines parties du code sans compilation ni exécution.
Vous pouvez lancer le toplevel avec la commande ocaml . Ensuite, vous pouvez écrire une phrase OCaml terminée par ;; qui est évalué immédiatement. Le niveau supérieur affiche le type et la valeur de votre expression juste après:
# "Hello Worlds!";;
- : string = "Hello Worlds!"
Il est également possible de lancer le toplevel sur votre fichier. Vous pouvez voir cette explication à ce sujet.
Pour faciliter votre saisie dans le toplevel , vous pouvez utiliser un outil comme ledit ou rlwrap qui fournit certaines fonctionnalités (comme l'historique des entrées):
$ ledit ocaml
$ rlwrap ocaml
Compilation au bytecode
Nous avons deux compilateurs différents, l'un qui compile en bytecode et l'autre qui compile en code natif. Le premier est identique au bytecode de la machine virtuelle Java. Le bytecode est donc moins efficace mais plus portable.
Nous avons des fichiers d’extensions utilisés par les compilateurs OCaml:
| extension | définition |
|---|---|
.ml | Le code source (comme .c en C) |
.mli | L'interface (comme .h en C) |
.cmo | Code source compilé par ocamlc dans bytecode |
.cmi | Code d'interface compilé par ocamlc |
.cmx et .o | Code source compilé par ocamlopt en code natif |
.cma | Bibliothèque ( *.cmo ) en bytecode |
.cmxa et .a | Bibliothèque en code natif |
.cmxs | Bibliothèque en code natif (pour charger dynamiquement) |
Le compilateur bytecode est ocamlc .
Vous avez différentes options communes:
-
-c: compiler un fichier source sans le processus de liaison (pour produire un exécutable). Ainsi, la commandeocaml -c foo.mlproduit un fichier.cmo. Contrairement à C dans lequel le fichier d' en- tête n'a pas besoin d'être compilé, il est nécessaire OCaml pour compiler le.mlifichier:ocaml -c foo.mli.
Vous devez d'abord compiler l'interface. Lorsque vous compilez le fichier source par la suite, OCaml essaie de vérifier que l'implémentation correspond à l'interface.
Le fichier .mli n'est pas obligatoire. Si vous compilez un fichier .ml sans un fichier .mli , OCaml produira automatiquement un fichier .cmi .
-o: compiler des fichiers.cmosur un exécutable. Par exemple:ocamlc -o program foo.cmo bar.cmo. Ces fichiers doivent être organisés par les dépendances pour lesquelles le premier fichier n'a aucune dépendance.-I: pour indiquer un autre répertoire où le compilateur peut trouver les fichiers nécessaires à la compilation (comme l'interface ou le code source). C'est la même chose que le-Id'un compilateur C.
Nous avons beaucoup d'autres options. Vous pouvez voir le manuel pour plus d'informations.
Donc, vous pouvez écrire le hello.ml maintenant et compiler ce fichier avec ocamlc -o hello hello.ml pour produire un programme bytecode :
let () = print_endline "Hello World!"
Le let () = ... est la première entrée de votre programme (comme le main dans C). Après, nous utilisons la fonction print_endline (fournie par la bibliothèque standard) avec l'argument "Hello World!" imprimer Hello Worlds avec une nouvelle ligne dans la sortie standard.
Après la compilation, vous avez le .cmo fichier et le .cmi fichier produit automatiquement par le compilateur et votre programme hello . Vous pouvez ouvrir votre programme et, en haut de ce fichier, vous pouvez voir:
#!/usr/local/bin/ocamlrun
Cela signifie que votre programme a besoin du programme ocamlrun (fourni par la distribution) pour exécuter le bytecode (comme la JVM).
Compilation au code natif
Nous avons un autre compilateur qui produit du code natif. Le compilateur est: ocamlopt . Cependant, l'exécutable résultant ne peut pas fonctionner sur la plupart des autres architectures.
ocamlopt utilise les mêmes options que ocamlc pour que vous puissiez exécuter ocamlopt -o hello hello.ml . Après, vous pouvez voir un .cmx et un fichier .o .
Enfin, à partir de votre programme de code bytecode / native, vous pouvez exécuter:
$ ./hello
Hello World!
$
Installation sous Windows (native)
Prémisse
Ces instructions montrent une procédure pour installer des binaires OCaml natifs dans Windows. Si votre système d'exploitation est Windows 10 (Insider Preview) build 14316 ou ultérieur, vous pouvez également installer OCaml via Bash sur Ubuntu sous Windows . Dans ce cas, suivez les instructions pour installer OCaml sur Ubuntu.
Installez OCaml et Opam
Télécharger la distribution officielle d'OCaml . Il contient à la fois les compilateurs OCaml et le gestionnaire de paquets Opam. Supposons que vous ayez installé le logiciel dans C:/OCaml . Pour être sûr d'avoir installé OCaml, ouvrez cmd.exe et tapez ocaml .
Si vous voyez que le message 'ocaml' is not recognized as an internal or external command, operable program or batch file vous devez ajouter C:/OCaml/bin à votre chemin (variable d'environnement).
Ajouter des binaires OCaml au chemin
dans Control Panel > System and Security > System > Advanced system settings (on the left) > Environment Variables , puis sélectionnez Path dans l'onglet System Variable , puis Edit .
Ajouter C:/OCaml/bin; à la liste.
Installez Cygwin
Sans Cygwin, vous ne pouvez pas utiliser Opam. En fait, si vous essayez d'ouvrir Opam en tapant opam dans cmd.exe le message suivant apparaît: Fatal error: exception Unix.Unix_error(20, "create_process", "cygcheck") .
Téléchargez Cygwin et démarrez le programme d'installation. Assurez-vous de vérifier les paquets suivants:
- automake
- diffutils
- libreadline
- faire
- m4
- mingw64-x86_64-gcc-core
- mingw64-x86_64-gmp
- mingw64-x86_64-openssl
- mingw64-x86_64-pkg-config
- mingw64-x86_64-sqlite3
- pièce
- rlwrap
- décompresser
- wget
Supposons que vous ayez installé le logiciel dans C:/cygwin ( C:/cygwin64 pour la version 64 bits). Ouvrez cmd et tapez wget (ou un des exécutables présents dans C:/cygwin/bin ) pour vérifier si vous pouvez utiliser les exécutables Cygwin. Si l'exécutable ne s'ouvre pas, ajoutez C:/cygwin/bin à votre chemin (variable d'environnement).
Configurer Opam
Ouvrez cmd.exe et tapez opam init pour configurer Opam.
Ensuite, installez ocamlfind (partie du compilateur OCaml) avec
opam install ocamlfind
opam config env
Vérifiez si ocamlfind est installé en le tapant dans cmd.exe .
La commande opam config env est utilisée pour ajouter le opam des exécutables opam au chemin de l'environnement. Si après la déconnexion, vous ne pouvez plus accéder à ocamlfind , vous pouvez l'ajouter manuellement en ajoutant au chemin la ligne suivante: C:/Users/<your user>/Documents/.opam/system/bin/ .
Installer des paquets
Les packages sont installés via Opam avec la commande opam install xyz où xyz est le nom du package.
Installer UTop
Essayez d'exécuter la commande opam install utop . Si vous n'avez aucune erreur, alors taper utop ouvrira l'exécutable.
Si vous voyez le message
[ERROR] The compilation of zed failed at "ocaml setup.ml -build".
vous devez installer manuellement les packages uniques. Essayez à nouveau de taper:
opam install zed
opam install lambda-term
opam install utop
Les lambda-term et utop peuvent ne pas être installés. Voir la section Dépannage.
Installation de Core
Vous pouvez installer core package core avec le opam install core . Sur la version Windows 64 bits (et Cygwin 64 bits), vous verrez l'erreur suivante:
[ERROR] core is not available because your system doesn't comply with os != "win32" & ocaml-version = "4.02.3".
Dépannez: impossible de créer un fichier régulier
Si le package avec le nom xyz.10.1 ne parvient pas à installer (où xyz est le nom du package et 10.1 sa version) avec le message suivant:
install: cannot create regular file '/cygdrive/c/Users/<your user>/Documents/.opam/system/bin/<something>': File exists
Vous devez aller dans ce répertoire:
C:\Users\<your user>\Documents\.opam\repo\default\packages\<xyz>\<xyz.10.1>\files
et supprimez le fichier xyz.10.1.install .
Dépannage: impossible de charger la bibliothèque partagée
Si vous essayez d'ouvrir un paquet d'Opam (par exemple: utop ) et que vous voyez cette erreur:
Fatal error: cannot load shared library dlllwt-unix_stubs
Reason: The specified module could not be found.
Exécutez à nouveau opam config env et essayez de rouvrir l'exécutable.