URL: https://linuxfr.org/news/ocaml-4-00-0-est-sorti Title: OCaml 4.00.0 est sorti Authors: Fabrice Le Fessant Lucas Bonnet, Xavier Teyssier, rootix et Bruno Michel Date: 2012年08月11日T09:45:03+02:00 License: CC By-SA Tags: ocaml et programmation Score: 42 La nouvelle version 4.00.0 du langage OCaml est disponible en ligne depuis le 26 juillet 2012. Aussi, la réunion des développeurs OCaml (OUD'2012) aura lieu cette années à Copenhague le 14 septembre. Venez nombreux ! Parmi les dernières nouveautés disponibles dans cette version 4.00.0 : * l'introduction des types de données algébriques généralisés (Generalized Algebraic Data Types - GADTs), qui permettent de détecter encore plus de bugs dès la compilation ; * le générateur de code pour ARM a été complètement réécrit ; * les types des modules de première classe sont maintenant inférés quand cela est possible, et les modules peuvent eux-mêmes être extraits par filtrage ; * le compilateur est disponible sous forme de bibliothèque, et une nouvelle option -bin-annot permet de sauver l'arbre de syntaxe typé, ce qui devrait permettre l'apparition de nouveaux outils de développement plus évolués (refactoring, etc.) ; * optimisation des fonctions partielles ; * détection de code mort ou inutile (variables, open, champs, constructeurs, labels, etc.) ; * émission de directives CFI pour améliorer le debuggage sous GDB. ---- [Télécharger](http://caml.inria.fr/download.en.html) [Tous les fichiers](http://caml.inria.fr/pub/distrib/ocaml-4.00/) [OCaml](http://caml.inria.fr/ocaml/release.en.html) [OCaml Users & Developers (OUD'2012)](http://oud.ocaml.org/2012/) [Le ChangeLog complet](http://caml.inria.fr/cgi-bin/viewvc.cgi/ocaml/release/4.00.0/Changes?view=markup) [ICFP Programming Contest 2012](http://icfpcontest2012.wordpress.com/) ---- Pour ceux qui ne connaissent pas, OCaml est un langage à mi-chemin entre C et Python, avec des performances proches de C avec la concision de Python. Mais contrairement à ces deux langages, OCaml appartient à la famille des langages à typage très fort, ce qui permet de détecter la plupart des bugs à la compilation, raccourcissant encore plus le temps de développement ! Rien d'étonnant à ce qu'OCaml ait gagné à plusieurs reprises la ICFP Programming Contest, compétition très sélective de programmation sur trois jours organisée tous les ans. OCaml permet aussi un mélange des styles impératifs, fonctionnels et objets. Par exemple, une fonction transformant un fichier en une liste de chaînes peut s'écrire : ```ocaml (* val lines_of_file : string -> string list *) let lines_of_file filename = let ic = open_in filename in let lines = ref [] in try while true do lines := (input_line ic) :: !lines done; assert false with End_of_file -> close_in ic; List.rev !lines ``` On y voit à la fois l'utilisation des exceptions (try...with), une boucle (while...do...done), mais la même fonction aurait pu être écrite sous forme complètement récursive par un partisan de la programmation fonctionnelle ! Pour la prochaine version majeure, l'apparition des namespaces, de [foncteurs](http://fr.wikipedia.org/wiki/Foncteur) multi-modules et la possibilité de profiler en utilisant le nouvel outil 'perf' sous Linux, sont sur les bancs, et on entend même parler de support des multicœurs dans les couloirs...

AltStyle によって変換されたページ (->オリジナル) /