Che cos'è il formato di file ML?
.ml è l'estensione standard dei file sorgente per il linguaggio di programmazione OCaml, un linguaggio funzionale a tipizzazione statica con caratteristiche orientate agli oggetti e imperative sviluppato presso l'INRIA di Parigi. L'estensione deriva da ML (Meta Language), la famiglia di linguaggi da cui discende OCaml.
Ogni file .ml definisce un modulo OCaml, nominato automaticamente come il file con la prima lettera maiuscola - parser.ml diventa il modulo Parser. Il file di interfaccia compagno .mli dichiara ciò che il modulo espone pubblicamente, agendo in modo simile a un file header C.
I file sorgente contengono sequenze di dichiarazioni OCaml: binding let, definizioni di type, definizioni di module e funtori, dichiarazioni di eccezioni e definizioni di classi. Per convenzione, un'espressione let () = ... al livello superiore funge da punto di ingresso del programma.
I file vengono compilati da ocamlc in bytecode o da ocamlopt in codice macchina nativo. Il sistema di build Dune e il gestore di pacchetti opam sono gli strumenti standard per la gestione dei progetti. OCaml 5.x (dal 2022 in poi) ha introdotto gli effect handler e il parallelismo multicore, aggiungendo una nuova sintassi non accettata dai compilatori più vecchi.
L'estensione .ml si vede occasionalmente anche per i file Standard ML, sebbene quella comunità utilizzi tipicamente .sml. L'uso dominante è OCaml, che ha raggiunto la versione 5.3 nel 2025.
Sicurezza e incolumità
RISCHIO: LOWCodice sorgente in testo semplice; nessun rischio di esecuzione se aperto in un editor di testo. Rischio solo se compilato ed eseguito - revisionare il codice prima di compilare file .ml non attendibili.
Dettagli del formato
in sintesi- File sorgente Standard ML (SML) - Alcune implementazioni Standard ML accettano .ml ma .sml è l'estensione convenzionale.
- File sorgente Reason/ReasonML - La sintassi Reason di Facebook per OCaml coesiste occasionalmente con i file .ml nello stesso progetto.
Programmi che aprono file ML
Dettagli tecnici
specifiche approfondite| Famiglia di linguaggi | ML (Meta Language) - funzionale, a tipizzazione statica |
| Nomenclatura dei moduli | Ogni file `.ml` = un modulo; il nome del file con l'iniziale maiuscola diventa il nome del modulo |
| Interfaccia compagna | Il file `.mli` dichiara la firma pubblica del modulo (analogo a un header) |
| Compilatore bytecode | `ocamlc` → file oggetto `.cmo` / output libreria `.cma` |
| Compilatore nativo | `ocamlopt` → `.cmx` / `.cmxa` / binario nativo |
| Sistema di build | Dune (standard moderno); OMake, Makefile (legacy) |
| Codifica | UTF-8; Unicode completo supportato da OCaml 4.14 (codebase legacy: ASCII) |
| Aggiunte sintattiche degne di nota | OCaml 4.02 (attributi), 4.08 (operatori di binding), 5.x (effetti, domini) |
| Sistema di tipi | Hindley-Milner con GADT, varianti polimorfiche e moduli di prima classe |
| Tipo MIME | `text/x-ocaml` |
| Modulo libreria standard | `Stdlib` (rinominato da `Pervasives` in OCaml 4.07) |
| Sistemi operativi associati | Linux, macOS, Windows, FreeBSD |
| Rilasciato | 1973 (ML); OCaml .ml usage since 1996 |
| Ultima versione | OCaml 5.3 (2025) |
| Standard aperto | Sì · royalty-free |
| Specifica | v2.ocaml.org |
Conversioni ML
Domande e risposte della community
chiesto dagli utentiAncora nessuna domanda - sii il primo a chiedere informazioni sui file ML.