Co to jest format pliku ML?
.ml to standardowe rozszerzenie pliku źródłowego dla języka programowania OCaml, statycznie typowanego języka funkcyjnego z funkcjami obiektowymi i imperatywnymi, opracowanego w INRIA w Paryżu. Rozszerzenie pochodzi od ML (Meta Language), rodziny języków, z której wywodzi się OCaml.
Każdy plik .ml definiuje jeden moduł OCaml, automatycznie nazywany tak samo jak plik, z pierwszą literą wielką - parser.ml staje się modułem Parser. Towarzyszący mu plik interfejsu .mli deklaruje, co moduł udostępnia publicznie, działając podobnie do pliku nagłówkowego C.
Pliki źródłowe zawierają sekwencje deklaracji OCaml: wiązania let, definicje type, definicje module i funktorów, deklaracje wyjątków oraz definicje klas. Wyrażenie let () = ... na najwyższym poziomie służy zgodnie z konwencją jako punkt wejścia programu.
Pliki są kompilowane przez ocamlc do kodu bajtowego lub przez ocamlopt do natywnego kodu maszynowego. System budowania Dune i menedżer pakietów opam są standardowymi narzędziami do zarządzania projektami. OCaml 5.x (od 2022 r.) wprowadził mechanizmy obsługi efektów (effect handlers) i wielordzeniową równoległość, dodając nową składnię nieakceptowaną przez starsze kompilatory.
Rozszerzenie .ml jest również sporadycznie spotykane w plikach Standard ML, choć ta społeczność zazwyczaj używa zamiast tego .sml. Dominującym zastosowaniem jest OCaml, który w 2025 roku osiągnął wersję 5.3.
Bezpieczeństwo
RYZYKO: LOWKod źródłowy w formacie zwykłego tekstu; brak ryzyka wykonania przy otwieraniu w edytorze tekstu. Ryzyko występuje tylko podczas kompilacji i uruchamiania - przejrzyj kod przed kompilacją niezaufanych plików .ml.
Szczegóły formatu
w pigułce- Plik źródłowy Standard ML (SML) - Niektóre implementacje Standard ML akceptują .ml, ale .sml jest konwencjonalnym rozszerzeniem.
- Plik źródłowy Reason/ReasonML - Składnia Reason firmy Facebook dla OCaml czasami współistnieje z plikami .ml w tym samym projekcie.
Programy otwierające pliki ML
Szczegóły techniczne
specyfikacja| Rodzina języków | ML (Meta Language) - funkcyjny, statycznie typowany |
| Nazewnictwo modułów | Każdy plik `.ml` = jeden moduł; nazwa pliku z wielkiej litery staje się nazwą modułu |
| Plik interfejsu | Plik `.mli` deklaruje publiczną sygnaturę modułu (analogicznie do nagłówka) |
| Kompilator kodu bajtowego | `ocamlc` → plik obiektowy `.cmo` / biblioteka `.cma` |
| Kompilator natywny | `ocamlopt` → `.cmx` / `.cmxa` / natywny plik binarny |
| System budowania | Dune (standardowy nowoczesny); OMake, Makefile (przestarzałe) |
| Kodowanie | UTF-8; pełna obsługa Unicode od OCaml 4.14 (starsze bazy kodowe: ASCII) |
| Istotne dodatki do składni | OCaml 4.02 (atrybuty), 4.08 (operatory wiązania), 5.x (efekty, domeny) |
| System typów | Hindley-Milner z GADT, wariantami polimorficznymi i modułami pierwszej klasy |
| Typ MIME | `text/x-ocaml` |
| Moduł biblioteki standardowej | `Stdlib` (zmieniono nazwę z `Pervasives` w OCaml 4.07) |
| Powiązany system operacyjny | Linux, macOS, Windows, FreeBSD |
| Wydano | 1973 (ML); OCaml .ml usage since 1996 |
| Najnowsza wersja | OCaml 5.3 (2025) |
| Otwarty standard | Tak · bezpłatny (royalty-free) |
| Specyfikacja | v2.ocaml.org |
Konwersje ML
Pytania i odpowiedzi społeczności
pytania użytkownikówBrak pytań - bądź pierwszą osobą, która zapyta o pliki ML.