Hva er ML-filformatet?
.ml er standard filendelse for kildekode i programmeringsspråket OCaml, et statisk typet funksjonelt språk med objektorienterte og imperative funksjoner utviklet ved INRIA, Paris. Endelsen stammer fra ML (Meta Language), språkfamilien som OCaml nedstammer fra.
Hver .ml-fil definerer én OCaml-modul, automatisk navngitt etter filen med stor forbokstav - parser.ml blir modulen Parser. Den tilhørende grensesnittfilen .mli deklarerer hva modulen eksponerer offentlig, og fungerer på samme måte som en C-headerfil.
Kildekodefiler inneholder sekvenser av OCaml-deklarasjoner: let-bindinger, type-definisjoner, module- og funktor-definisjoner, unntaksdeklarasjoner og klassedefinisjoner. Et let () = ...-uttrykk på toppnivå fungerer etter konvensjon som programmets startpunkt.
Filer kompileres av ocamlc til bytekode eller av ocamlopt til maskinkode. Byggesystemet Dune og pakkebehandleren opam er standardverktøyene for prosjektstyring. OCaml 5.x (fra 2022 og utover) introduserte «effect handlers» og flerkjerneparallellisme, noe som la til ny syntaks som ikke aksepteres av eldre kompilatorer.
Endelsen .ml ses også av og til for Standard ML-filer, selv om det miljøet vanligvis bruker .sml i stedet. Den dominerende bruken er OCaml, som nådde versjon 5.3 i 2025.
Sikkerhet og trygghet
RISIKO: LOWKildekode i ren tekst; ingen utførelsesrisiko når den åpnes i et tekstredigeringsprogram. Risiko oppstår kun ved kompilering og kjøring - gå gjennom koden før du kompilerer ukjente .ml-filer.
Formatdetaljer
i et nøtteskall- Standard ML (SML) kildekodefil - Noen Standard ML-implementasjoner godtar .ml, men .sml er den konvensjonelle endelsen.
- Reason/ReasonML kildekodefil - Facebooks Reason-syntaks for OCaml eksisterer av og til side om side med .ml-filer i samme prosjekt.
Programmer som åpner ML-filer
Tekniske detaljer
dyp spesifikasjon| Språkfamilie | ML (Meta Language) - funksjonelt, statisk typet |
| Modulnavngivning | Hver `.ml`-fil = én modul; filnavn med stor forbokstav blir modulnavnet |
| Grensesnittfil | `.mli`-fil deklarerer modulens offentlige signatur (tilsvarer en header) |
| Bytekode-kompilator | `ocamlc` → `.cmo`-objektfil / `.cma`-bibliotek |
| Maskinkode-kompilator | `ocamlopt` → `.cmx` / `.cmxa` / kjørbar fil |
| Byggesystem | Dune (moderne standard); OMake, Makefile (foreldet) |
| Koding | UTF-8; full Unicode-støtte siden OCaml 4.14 (eldre kildekode: ASCII) |
| Merkbare syntakstillegg | OCaml 4.02 (attributter), 4.08 (bindingsoperatorer), 5.x (effects, domains) |
| Typesystem | Hindley-Milner med GADTs, polymorfe varianter og førsteklasses moduler |
| MIME-type | `text/x-ocaml` |
| Standardbibliotek-modul | `Stdlib` (endret navn fra `Pervasives` i OCaml 4.07) |
| Tilknyttet OS | Linux, macOS, Windows, FreeBSD |
| Utgitt | 1973 (ML); OCaml .ml usage since 1996 |
| Siste versjon | OCaml 5.3 (2025) |
| Åpen standard | Ja · royalty-fri |
| Spesifikasjon | v2.ocaml.org |
ML-konverteringer
Spørsmål og svar fra fellesskapet
spurt av brukereIngen spørsmål ennå - vær den første til å spørre om ML-filer.