Was ist das ML-Dateiformat?
.ml ist die Standard-Dateiendung für Quellcode der Programmiersprache OCaml, einer statisch typisierten funktionalen Sprache mit objektorientierten und imperativen Merkmalen, die am INRIA in Paris entwickelt wurde. Die Endung leitet sich von ML (Meta Language) ab, der Sprachfamilie, von der OCaml abstammt.
Jede .ml Datei definiert ein OCaml-Modul, das automatisch nach der Datei benannt wird, wobei der erste Buchstabe großgeschrieben wird - parser.ml wird zum Modul Parser. Die zugehörige .mli Interface-Datei deklariert, was das Modul öffentlich zugänglich macht, ähnlich wie eine C-Header-Datei.
Quellcodedateien enthalten Sequenzen von OCaml-Deklarationen: let Bindungen, type Definitionen, module und Funktor-Definitionen, Exception-Deklarationen und Klassendefinitionen. Ein let () = ... Ausdruck auf der obersten Ebene dient konventionell als Einstiegspunkt des Programms.
Dateien werden von ocamlc in Bytecode oder von ocamlopt in nativen Maschinencode kompiliert. Das Dune Build-System und der Paketmanager opam sind die Standardwerkzeuge für das Projektmanagement. OCaml 5.x (ab 2022) führte Effect-Handler und Multicore-Parallelität ein und fügte neue Syntax hinzu, die von älteren Compilern nicht akzeptiert wird.
Die Endung .ml wird gelegentlich auch für Standard ML Dateien verwendet, obwohl diese Community typischerweise .sml bevorzugt. Die dominierende Verwendung ist OCaml, das im Jahr 2025 die Version 5.3 erreichte.
Sicherheit
RISIKO: LOWKlartext-Quellcode; kein Ausführungsrisiko beim Öffnen in einem Texteditor. Risiko nur beim Kompilieren und Ausführen - prüfen Sie den Code, bevor Sie nicht vertrauenswürdige .ml Dateien kompilieren.
Formatdetails
kurz gefasst- Standard ML (SML) Quellcodedatei - Einige Standard ML Implementierungen akzeptieren .ml, aber .sml ist die konventionelle Endung.
- Reason/ReasonML Quellcodedatei - Facebooks Reason-Syntax für OCaml koexistiert gelegentlich mit .ml Dateien im selben Projekt.
Programme zum Öffnen von ML-Dateien
Technische Details
technische Spezifikation| Sprachfamilie | ML (Meta Language) - funktional, statisch typisiert |
| Modulbenennung | Jede `.ml` Datei = ein Modul; Dateiname großgeschrieben wird zum Modulnamen |
| Interface-Begleiter | `.mli` Datei deklariert die öffentliche Signatur des Moduls (analog zu einem Header) |
| Bytecode-Compiler | `ocamlc` → `.cmo` Objektdatei / `.cma` Bibliotheksausgabe |
| Nativer Compiler | `ocamlopt` → `.cmx` / `.cmxa` / natives Binary |
| Build-System | Dune (moderner Standard); OMake, Makefile (veraltet) |
| Kodierung | UTF-8; voller Unicode-Support seit OCaml 4.14 (ältere Codebasen: ASCII) |
| Wichtige Syntax-Erweiterungen | OCaml 4.02 (Attribute), 4.08 (Binding-Operatoren), 5.x (Effects, Domains) |
| Typsystem | Hindley-Milner mit GADTs, polymorphen Varianten und First-Class Modulen |
| MIME-Typ | `text/x-ocaml` |
| Standardbibliotheks-Modul | `Stdlib` (umbenannt von `Pervasives` in OCaml 4.07) |
| Zugehöriges Betriebssystem | Linux, macOS, Windows, FreeBSD |
| Veröffentlicht | 1973 (ML); OCaml .ml usage since 1996 |
| Neueste Version | OCaml 5.3 (2025) |
| Offener Standard | Ja · lizenzgebührenfrei |
| Spezifikation | v2.ocaml.org |
ML-Konvertierungen
Community Q&A
von Nutzern gefragtNoch keine Fragen - stellen Sie die erste Frage zu ML-Dateien.