Qu'est-ce que le format de fichier ML ?
.ml est l'extension de fichier source standard pour le langage de programmation OCaml, un langage fonctionnel statiquement typé avec des fonctionnalités orientées objet et impératives développé à l'INRIA, Paris. L'extension provient de ML (Meta Language), la famille de langages dont OCaml descend.
Chaque fichier .ml définit un module OCaml, automatiquement nommé d'après le fichier avec sa première lettre en majuscule - parser.ml devient le module Parser. Le fichier d'interface compagnon .mli déclare ce que le module expose publiquement, agissant de manière similaire à un fichier d'en-tête C.
Les fichiers sources contiennent des séquences de déclarations OCaml : des liaisons let, des définitions de type, des définitions de module et de foncteurs, des déclarations d'exceptions et des définitions de classes. Une expression let () = ... au niveau supérieur sert de point d'entrée au programme par convention.
Les fichiers sont compilés par ocamlc en bytecode ou par ocamlopt en code machine natif. Le système de construction Dune et le gestionnaire de paquets opam sont les outils de gestion de projet standard. OCaml 5.x (à partir de 2022) a introduit les gestionnaires d'effets et le parallélisme multicœur, ajoutant une nouvelle syntaxe non acceptée par les anciens compilateurs.
L'extension .ml est également parfois rencontrée pour les fichiers Standard ML, bien que cette communauté utilise généralement .sml à la place. L'utilisation dominante est OCaml, qui a atteint la version 5.3 en 2025.
Sécurité et sûreté
RISQUE : LOWCode source en texte brut ; aucun risque d'exécution lors de l'ouverture dans un éditeur de texte. Risque uniquement lors de la compilation et de l'exécution - examinez le code avant de compiler des fichiers .ml non fiables.
Détails du format
en bref- Fichier source Standard ML (SML) - Certaines implémentations de Standard ML acceptent .ml mais .sml est l'extension conventionnelle.
- Fichier source Reason/ReasonML - La syntaxe Reason de Facebook pour OCaml coexiste occasionnellement avec des fichiers .ml dans le même projet.
Programmes qui ouvrent les fichiers ML
Détails techniques
spécifications approfondies| Famille de langages | ML (Meta Language) - fonctionnel, statiquement typé |
| Nommage des modules | Chaque fichier `.ml` = un module ; le nom du fichier en majuscule devient le nom du module |
| Compagnon d'interface | Le fichier `.mli` déclare la signature publique du module (analogue à un en-tête) |
| Compilateur bytecode | `ocamlc` → fichier objet `.cmo` / sortie de bibliothèque `.cma` |
| Compilateur natif | `ocamlopt` → `.cmx` / `.cmxa` / binaire natif |
| Système de construction | Dune (standard moderne) ; OMake, Makefile (héritage) |
| Encodage | UTF-8 ; Unicode complet supporté depuis OCaml 4.14 (bases de code héritées : ASCII) |
| Ajouts syntaxiques notables | OCaml 4.02 (attributs), 4.08 (opérateurs de liaison), 5.x (effets, domaines) |
| Système de types | Hindley-Milner avec GADTs, variantes polymorphes et modules de première classe |
| Type MIME | `text/x-ocaml` |
| Module de bibliothèque standard | `Stdlib` (renommé de `Pervasives` dans OCaml 4.07) |
| OS associés | Linux, macOS, Windows, FreeBSD |
| Publié | 1973 (ML); OCaml .ml usage since 1996 |
| Dernière version | OCaml 5.3 (2025) |
| Standard ouvert | Oui · libre de droits |
| Spécification | v2.ocaml.org |
Conversions ML
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers ML.