« Premiers pas en OCaml/Premier programme » : différence entre les versions
m Oubli d'un "s" |
m Robot : Remplacement de texte automatisé (-(<|</)source([ \t>]) +\1syntaxhighlight\2) |
||
Ligne 10 : | Ligne 10 : | ||
En OCaml et contrairement à d'autres langages de programmation les expressions finissent par deux points-virgules ''';;'''. |
En OCaml et contrairement à d'autres langages de programmation les expressions finissent par deux points-virgules ''';;'''. |
||
< |
<syntaxhighlight lang="ocaml"> |
||
<expression>;; |
<expression>;; |
||
</syntaxhighlight> |
|||
</source> |
|||
et les commentaires commencent par '''(*''' et finissent par '''*)'''. |
et les commentaires commencent par '''(*''' et finissent par '''*)'''. |
||
< |
<syntaxhighlight lang="ocaml"> |
||
(* Commentaire *) |
(* Commentaire *) |
||
</syntaxhighlight> |
|||
</source> |
|||
Les fichiers OCaml utilisent l'extension ''.ml''. Je vous conseille d’utiliser un [[w:Liste_de_logiciels_libres#.C3.89diteurs_de_texte| éditeur de texte avancé]] pour créer et éditer vos fichiers .ml. |
Les fichiers OCaml utilisent l'extension ''.ml''. Je vous conseille d’utiliser un [[w:Liste_de_logiciels_libres#.C3.89diteurs_de_texte| éditeur de texte avancé]] pour créer et éditer vos fichiers .ml. |
||
Ligne 25 : | Ligne 25 : | ||
| titre = bonjour_le_monde.ml |
| titre = bonjour_le_monde.ml |
||
| contenu = |
| contenu = |
||
< |
<syntaxhighlight lang="ocaml" line> |
||
(* Affiche bonjour le monde! *) |
(* Affiche bonjour le monde! *) |
||
print_endline "Bonjour le monde !";; |
print_endline "Bonjour le monde !";; |
||
</syntaxhighlight> |
|||
</source> |
|||
}} |
}} |
||
Ligne 34 : | Ligne 34 : | ||
La boucle d'interaction fonctionne comme un interpréteur. C'est la méthode la plus simple pour exécuter son programme, mais aussi la plus lente. |
La boucle d'interaction fonctionne comme un interpréteur. C'est la méthode la plus simple pour exécuter son programme, mais aussi la plus lente. |
||
Deux solutions, soit : |
Deux solutions, soit : |
||
< |
<syntaxhighlight lang="bash"> |
||
> ocaml bonjour_le_monde.ml |
> ocaml bonjour_le_monde.ml |
||
bonjour le monde ! |
bonjour le monde ! |
||
</syntaxhighlight> |
|||
</source> |
|||
soit : |
soit : |
||
< |
<syntaxhighlight lang="bash"> |
||
> ocaml |
> ocaml |
||
</syntaxhighlight> |
|||
</source> |
|||
puis |
puis |
||
< |
<syntaxhighlight lang="ocaml"> |
||
#use "bonjour_le_monde.ml";; |
#use "bonjour_le_monde.ml";; |
||
Bonjour le monde ! |
Bonjour le monde ! |
||
- : unit = () |
- : unit = () |
||
</syntaxhighlight> |
|||
</source> |
|||
L'avantage de la deuxième solution est que toutes les informations sur les types sont affichées. |
L'avantage de la deuxième solution est que toutes les informations sur les types sont affichées. |
||
Ligne 56 : | Ligne 56 : | ||
Par contre le programme généré ne sera pas multiplateforme. |
Par contre le programme généré ne sera pas multiplateforme. |
||
< |
<syntaxhighlight lang="bash"> |
||
ocamlopt bonjour_le_monde.ml -o hello |
ocamlopt bonjour_le_monde.ml -o hello |
||
./hello |
./hello |
||
Bonjour le monde ! |
Bonjour le monde ! |
||
</syntaxhighlight> |
|||
</source> |
|||
=== Le compilateur bytecode ('''bytecode compiler''') === |
=== Le compilateur bytecode ('''bytecode compiler''') === |
||
L'avantage d’utiliser le [[w:Bytecode|compilateur bytecode]] est de rendre son programme multiplateforme. |
L'avantage d’utiliser le [[w:Bytecode|compilateur bytecode]] est de rendre son programme multiplateforme. |
||
Par contre le programme sera plus lent que s'il était compilé en code natif. |
Par contre le programme sera plus lent que s'il était compilé en code natif. |
||
< |
<syntaxhighlight lang="bash"> |
||
ocamlc bonjour_le_monde.ml -o hello |
ocamlc bonjour_le_monde.ml -o hello |
||
./hello |
./hello |
||
Bonjour le monde ! |
Bonjour le monde ! |
||
</syntaxhighlight> |
|||
</source> |
|||
== Références == |
== Références == |
Version du 31 mars 2021 à 11:29
Premier programme OCaml
En OCaml et contrairement à d'autres langages de programmation les expressions finissent par deux points-virgules ;;.
<expression>;;
et les commentaires commencent par (* et finissent par *).
(* Commentaire *)
Les fichiers OCaml utilisent l'extension .ml. Je vous conseille d’utiliser un éditeur de texte avancé pour créer et éditer vos fichiers .ml.
Créons par exemple notre premier fichier bonjour_le_monde.ml.
La boucle d'interaction (interactive toplevel)
La boucle d'interaction fonctionne comme un interpréteur. C'est la méthode la plus simple pour exécuter son programme, mais aussi la plus lente. Deux solutions, soit :
> ocaml bonjour_le_monde.ml
bonjour le monde !
soit :
> ocaml
puis
#use "bonjour_le_monde.ml";;
Bonjour le monde !
- : unit = ()
L'avantage de la deuxième solution est que toutes les informations sur les types sont affichées.
Le compilateur de code natif (native-code compiler)
L'avantage de compiler en code natif est de rendre son programme très rapide. Par contre le programme généré ne sera pas multiplateforme.
ocamlopt bonjour_le_monde.ml -o hello
./hello
Bonjour le monde !
Le compilateur bytecode (bytecode compiler)
L'avantage d’utiliser le compilateur bytecode est de rendre son programme multiplateforme. Par contre le programme sera plus lent que s'il était compilé en code natif.
ocamlc bonjour_le_monde.ml -o hello
./hello
Bonjour le monde !
Références
Si vous voulez en savoir plus, n'hésitez pas à jeter un coup d'œil à la documentation officielle.
ocaml
[html] • [licence Copyright] • (en) • lien vers le document • Documentation officielle d'ocaml
ocamlopt
[html] • [licence Copyright] • (en) • lien vers le document • Documentation officielle d'ocamlopt
ocamlc
[html] • [licence Copyright] • (en) • lien vers le document • Documentation officielle d'ocamlc