Hvad er ML-filformatet?
.ml er den standardmæssige filendelse for kildekode til programmeringssproget OCaml, et statisk typet funktionelt sprog med objektorienterede og imperative funktioner udviklet hos INRIA, Paris. Endelsen stammer fra ML (Meta Language), den familie af sprog, som OCaml nedstammer fra.
Hver .ml-fil definerer ét OCaml-modul, der automatisk navngives efter filen med det første bogstav skrevet med stort - parser.ml bliver til modulet Parser. Den tilhørende .mli grænsefladefil erklærer, hvad modulet eksponerer offentligt, og fungerer på samme måde som en C-headerfil.
Kildekodefiler indeholder sekvenser af OCaml-erklæringer: let-bindinger, type-definitioner, module- og funktor-definitioner, undtagelseserklæringer og klassedefinitioner. Et let () = ... udtryk på øverste niveau fungerer efter konventionen som programmets indgangspunkt.
Filer kompileres af ocamlc til bytecode eller af ocamlopt til indfødt maskinkode. Dune-buildsystemet og opam-pakkehåndteringen er de standardmæssige værktøjer til projektstyring. OCaml 5.x (fra 2022 og frem) introducerede «effect handlers» og multicore-parallelisme, hvilket tilføjede ny syntaks, der ikke accepteres af ældre kompilere.
Endelsen .ml ses også lejlighedsvis for Standard ML-filer, selvom det miljø typisk bruger .sml i stedet. Den dominerende brug er OCaml, som nåede version 5.3 i 2025.
Sikkerhed og tryghed
RISIKO: LOWAlmindelig tekstkildekode; ingen eksekveringsrisiko, når den åbnes i en teksteditor. Risiko opstår kun ved kompilering og kørsel - gennemse koden, før du kompilerer upålidelige .ml-filer.
Formatdetaljer
kort fortalt- Standard ML (SML) kildekodefil - Nogle Standard ML-implementeringer accepterer .ml, men .sml er den konventionelle endelse.
- Reason/ReasonML kildekodefil - Facebooks Reason-syntaks til OCaml eksisterer af og til side om side med .ml-filer i samme projekt.
Programmer der åbner ML-filer
Tekniske detaljer
dyb specifikation| Sprogfamilie | ML (Meta Language) - funktionelt, statisk typet |
| Modulnavngivning | Hver `.ml`-fil = ét modul; filnavn med stort begyndelsesbogstav bliver modulnavnet |
| Grænseflade-ledsager | `.mli`-fil erklærer modulets offentlige signatur (svarer til en header) |
| Bytecode-kompiler | `ocamlc` → `.cmo` objektfil / `.cma` biblioteksoutput |
| Indfødt kompiler | `ocamlopt` → `.cmx` / `.cmxa` / indfødt binær fil |
| Buildsystem | Dune (moderne standard); OMake, Makefile (ældre) |
| Kodning | UTF-8; fuld Unicode understøttet siden OCaml 4.14 (ældre kildekode: ASCII) |
| Bemærkelsesværdige syntakstilføjelser | OCaml 4.02 (attributter), 4.08 (bindingsoperatorer), 5.x (effekter, domæner) |
| Typesystem | Hindley-Milner med GADTs, polymorfe varianter og «first-class» moduler |
| MIME-type | `text/x-ocaml` |
| Standardbiblioteksmodul | `Stdlib` (omdøbt fra `Pervasives` i OCaml 4.07) |
| Associeret OS | Linux, macOS, Windows, FreeBSD |
| Udgivet | 1973 (ML); OCaml .ml usage since 1996 |
| Seneste version | OCaml 5.3 (2025) |
| Åben standard | Ja · royaltyfri |
| Specifikation | v2.ocaml.org |
ML-konverteringer
Fællesskabets Q&A
spurgt af brugereIngen spørgsmål endnu - vær den første til at spørge om ML-filer.