« OCaml » : différence entre les versions
m (n) |
mAucun résumé des modifications |
||
Ligne 19 : | Ligne 19 : | ||
Il existe une communauté grandissante de développeurs Ocaml. Le '''Ocaml Hump''' [http://caml.inria.fr/cgi-bin/hump.fr.cgi ici] contient une collection croissante de logiciels et bibliothèques libres codé(e)s en Ocaml; on peut développer des applications Web (avec Wdialog par exemple), interfacer des SGBDs, invoquer des appels systèmes etc... Ocaml est très puissant (et originellement développé) pour le traitement symbolique de l'information: compilateurs, démonstrateurs de théorèmes, etc.. | Il existe une communauté grandissante de développeurs Ocaml. Le '''Ocaml Hump''' [http://caml.inria.fr/cgi-bin/hump.fr.cgi ici] contient une collection croissante de logiciels et bibliothèques libres codé(e)s en Ocaml; on peut développer des applications Web (avec Wdialog par exemple), interfacer des SGBDs, invoquer des appels systèmes etc... Ocaml est très puissant (et originellement développé) pour le traitement symbolique de l'information: compilateurs, démonstrateurs de théorèmes, etc.. | ||
== quelques exemples de code Ocaml == | === quelques exemples de code Ocaml === | ||
Bien sûr, le hello world: | Bien sûr, le hello world: | ||
Ligne 26 : | Ligne 26 : | ||
print_string "hello world\n";; | print_string "hello world\n";; | ||
Les commentaires sont à la Pascal entre (* et *) | Les commentaires sont à la Pascal entre (* et *) et peuvent être imbriqués. | ||
Les arguments d'une fonction (ici print_string) suivent le nom de la fonction, sans parenthèses. Un certain nombre de fonctions (en fait de valeurs fonctionnelles) sont prédéfinies, de sorte qu'on n'a pas besoin (au contraire de C) de requérir l'accès à la bibliothèque standard d'Ocaml. | Les arguments d'une fonction (ici print_string) suivent le nom de la fonction, sans parenthèses. Un certain nombre de fonctions (en fait de valeurs fonctionnelles) sont prédéfinies, de sorte qu'on n'a pas besoin (au contraire de C) de requérir l'accès à la bibliothèque standard d'Ocaml. | ||
Ligne 33 : | Ligne 33 : | ||
On peut sauvegarder ce fichier de 2 lignes dans hello.ml puis le compiler par | On peut sauvegarder ce fichier de 2 lignes dans hello.ml puis le compiler par | ||
ocamlc hello.ml -o hello qui produit un binaire de code octet (portable tel quel sur beaucoup d'architectures). On aurait pu le compiler avec le compilateur natif: ocamlopt hello.ml -o hello | ocamlc hello.ml -o hello qui produit un binaire de code octet (portable tel quel sur beaucoup d'architectures). On aurait pu le compiler avec le compilateur natif: ocamlopt hello.ml -o hello | ||
on peut aussi utiliser l'interprète interactif (toplevel); on peu taper les phrases sur plusieurs lignes, mais le double point-virgule est indispensable pour terminer la phrase. | |||
% ''ocaml'' | |||
Objective Caml version 3.09.1 | |||
# ''2 + 3;;'' | |||
- : int = 5 | |||
{{Copy|9/11/2005|[[Utilisateur:Basiles|Basiles]]|CC-BY-SA}} | {{Copy|9/11/2005|[[Utilisateur:Basiles|Basiles]]|CC-BY-SA}} |
Version du 18 février 2006 à 21:47
Le language Ocaml
Introduction
Le language Ocaml est développé en France par une équipe de chercheurs de l'INRIA, dont la plupart utilisent (et contribuent activement) à Linux et au logiciel libre. Il est utilisé par une communauté croissante, aussi bien dans le monde académique (de nombreux chercheurs prototypent leurs idées en Ocaml) ou universitaire (son prédécesseur Caml est enseigné en classe prépa, premier cycle) que dans le monde industriel (dans des petites startup comme dans des grosses multinationales). Ocaml est language fonctionnel et à objets, avec un typage statique (et inférence de types). À cet égard il est assez différent des languages habituels sous Linux (comme C, C++, Perl, Python). Il existe plusieurs grosses applications développées en Ocaml -aussi bien libres que propriétaires-. Une application libre potentiellement utile à beaucoup est Unison pour synchroniser (càd copier) des fichiers entres machines différentes, disponible ici. Il y aussi Advi (visualiseur pour fichiers dvi produits par LaTeX) qui permet notamment de faire de beaux transparents (y compris avec des formules de mathématiques, de l'animation, des fenêtres de démo de logiciels) disponible ici et le paquet Whizzytex (utilisant advi) pour visualiser immédiatement en temps quasi réel un document LaTeX pendant son édition.
L'implémentation d'Ocaml
Le language Ocaml a sa page ici. Son implémentation est libre. Il y a en réalité plusieurs variantes d'implementation (partageant du code en commun):
l'interprète interactif dit toplevel, par la commande ocaml; le principal intérêt d' ocaml est de tester interactivement une (ou quelques) nouvelles fonctions (éventuellement rajoutées à un gros programme existant). Il y a aussi un débogueur ocamldebug
le compilateur vers du code-octet bytecode compiler, par la commande ocamlc (le code-octet produit a sa machine virtuelle propre ocamlrun; ce code octet est différent de ceux de Java, Lua ou Parrot).
le compilateur natif (sur AMD64, x86, PowerPC, Sparc etc...) native compiler, par la commande ocamlopt. Les programmes compilés avec ocamlopt s'exécutent à peu près aussi rapidement que leur équivalent C ou C++.
Il existe une communauté grandissante de développeurs Ocaml. Le Ocaml Hump ici contient une collection croissante de logiciels et bibliothèques libres codé(e)s en Ocaml; on peut développer des applications Web (avec Wdialog par exemple), interfacer des SGBDs, invoquer des appels systèmes etc... Ocaml est très puissant (et originellement développé) pour le traitement symbolique de l'information: compilateurs, démonstrateurs de théorèmes, etc..
quelques exemples de code Ocaml
Bien sûr, le hello world:
(* hello world en Ocaml *) print_string "hello world\n";;
Les commentaires sont à la Pascal entre (* et *) et peuvent être imbriqués.
Les arguments d'une fonction (ici print_string) suivent le nom de la fonction, sans parenthèses. Un certain nombre de fonctions (en fait de valeurs fonctionnelles) sont prédéfinies, de sorte qu'on n'a pas besoin (au contraire de C) de requérir l'accès à la bibliothèque standard d'Ocaml.
On peut sauvegarder ce fichier de 2 lignes dans hello.ml puis le compiler par
ocamlc hello.ml -o hello qui produit un binaire de code octet (portable tel quel sur beaucoup d'architectures). On aurait pu le compiler avec le compilateur natif: ocamlopt hello.ml -o hello
on peut aussi utiliser l'interprète interactif (toplevel); on peu taper les phrases sur plusieurs lignes, mais le double point-virgule est indispensable pour terminer la phrase.
% ocaml Objective Caml version 3.09.1
# 2 + 3;; - : int = 5
Copyright
© 9/11/2005 Basiles
Ce document est publié sous licence Creative Commons Attribution, Partage à l'identique 4.0 : https://creativecommons.org/licenses/by-sa/4.0/ |