Vad är filformatet ML?
.ml är standardfiländelsen för källkod i programmeringsspråket OCaml, ett statiskt typt funktionellt språk med objektorienterade och imperativa funktioner utvecklat vid INRIA, Paris. Ändelsen härstammar från ML (Meta Language), den språkfamilj som OCaml härstammar från.
Varje .ml-fil definierar en OCaml-modul, som automatiskt namnges efter filen med stor begynnelsebokstav - parser.ml blir modulen Parser. Den tillhörande gränssnittsfilen .mli deklarerar vad modulen exponerar offentligt, vilket fungerar på ett liknande sätt som en C-headerfil.
Källkodsfiler innehåller sekvenser av OCaml-deklarationer: let-bindningar, type-definitioner, module- och funktor-definitioner, undantagsdeklarationer och klassdefinitioner. Ett let () = ...-uttryck på toppnivå fungerar enligt konvention som programmets startpunkt.
Filer kompileras av ocamlc till bytekod eller av ocamlopt till infödd maskinkod. Byggsystemet Dune och pakethanteraren opam är standardverktygen för projekthantering. OCaml 5.x (från 2022 och framåt) introducerade effekthanterare (effect handlers) och flerkärnig parallellism, vilket lade till ny syntax som inte accepteras av äldre kompilatorer.
Filändelsen .ml ses också ibland för Standard ML-filer, även om det communityt vanligtvis använder .sml istället. Den dominerande användningen är OCaml, som nådde version 5.3 år 2025.
Säkerhet & trygghet
RISK: LOWKällkod i vanlig text; ingen exekveringsrisk när den öppnas i en textredigerare. Risk finns endast när den kompileras och körs - granska koden innan du kompilerar okända .ml-filer.
Formatdetaljer
i ett nötskal- Standard ML (SML) källkodsfil - Vissa Standard ML-implementeringar accepterar .ml men .sml är den konventionella ändelsen.
- Reason/ReasonML källkodsfil - Facebooks Reason-syntax för OCaml samexisterar ibland med .ml-filer i samma projekt.
Program som öppnar ML-filer
Tekniska detaljer
djup specifikation| Språkfamilj | ML (Meta Language) - funktionellt, statiskt typt |
| Modulnamngivning | Varje `.ml`-fil = en modul; filnamnet med stor bokstav blir modulnamnet |
| Gränssnittskompis | `.mli`-fil deklarerar modulens offentliga signatur (analogt med en header) |
| Bytekodskompilator | `ocamlc` → `.cmo` objektfil / `.cma` biblioteksutdata |
| Infödd kompilator | `ocamlopt` → `.cmx` / `.cmxa` / infödd binärfil |
| Byggsystem | Dune (modern standard); OMake, Makefile (föråldrat) |
| Kodning | UTF-8; fullt Unicode-stöd sedan OCaml 4.14 (äldre kodbaser: ASCII) |
| Anmärkningsvärda syntax-tillägg | OCaml 4.02 (attribut), 4.08 (bindningsoperatorer), 5.x (effekter, domäner) |
| Typsystem | Hindley-Milner med GADTs, polymorfa varianter och förstklassiga moduler |
| MIME-typ | `text/x-ocaml` |
| Standardbiblioteksmodul | `Stdlib` (bytte namn från `Pervasives` i OCaml 4.07) |
| Associerat OS | Linux, macOS, Windows, FreeBSD |
| Släppt | 1973 (ML); OCaml .ml usage since 1996 |
| Senaste version | OCaml 5.3 (2025) |
| Öppen standard | Ja · royaltyfri |
| Specifikation | v2.ocaml.org |
ML-konverteringar
Frågor & svar
frågat av användareInga frågor än - bli den första att fråga om ML-filer.