Что такое формат файла ML?
.ml - это стандартное расширение исходных файлов для языка программирования OCaml, статически типизированного функционального языка с объектно-ориентированными и императивными функциями, разработанного в INRIA, Париж. Расширение происходит от ML (Meta Language) - семейства языков, от которого произошел OCaml.
Каждый файл .ml определяет один модуль OCaml, автоматически называемый в честь файла с заглавной первой буквой - parser.ml становится модулем Parser. Сопутствующий файл интерфейса .mli объявляет, что модуль открывает публично, действуя аналогично заголовочному файлу C.
Исходные файлы содержат последовательности объявлений OCaml: привязки let, определения type, определения module и функторов, объявления исключений и определения классов. Выражение let () = ... на верхнем уровне по соглашению служит точкой входа в программу.
Файлы компилируются ocamlc в байт-код или ocamlopt в нативный машинный код. Система сборки Dune и менеджер пакетов opam являются стандартными инструментами управления проектами. В OCaml 5.x (с 2022 года) были введены обработчики эффектов и многоядерный параллелизм, что добавило новый синтаксис, не принимаемый старыми компиляторами.
Расширение .ml также изредка встречается у файлов Standard ML, хотя в этом сообществе обычно используется .sml. Доминирующим является использование OCaml, который достиг версии 5.3 в 2025 году.
Безопасность и защита
РИСК: LOWИсходный код в текстовом формате; нет риска выполнения при открытии в текстовом редакторе. Риск возникает только при компиляции и запуске - проверяйте код перед компиляцией ненадежных файлов .ml.
Детали формата
в двух словах- Файл исходного кода Standard ML (SML) - Некоторые реализации Standard ML принимают .ml, но .sml является общепринятым расширением.
- Файл исходного кода Reason/ReasonML - Синтаксис Reason от Facebook для OCaml иногда сосуществует с файлами .ml в одном проекте.
Программы, открывающие файлы ML
Технические подробности
глубокая спецификация| Семейство языков | ML (Meta Language) - функциональный, статически типизированный |
| Именование модулей | Каждый файл `.ml` = один модуль; имя файла с заглавной буквы становится именем модуля |
| Файл интерфейса | Файл `.mli` объявляет публичную сигнатуру модуля (аналогично заголовочному файлу) |
| Компилятор байт-кода | `ocamlc` → объектный файл `.cmo` / библиотека `.cma` |
| Нативный компилятор | `ocamlopt` → `.cmx` / `.cmxa` / нативный бинарный файл |
| Система сборки | Dune (современный стандарт); OMake, Makefile (устаревшие) |
| Кодировка | UTF-8; полная поддержка Unicode начиная с OCaml 4.14 (устаревшие кодовые базы: ASCII) |
| Заметные дополнения синтаксиса | OCaml 4.02 (атрибуты), 4.08 (операторы привязки), 5.x (эффекты, домены) |
| Система типов | Хиндли-Милнер с GADT, полиморфными вариантами и модулями первого класса |
| MIME-тип | `text/x-ocaml` |
| Модуль стандартной библиотеки | `Stdlib` (переименован из `Pervasives` в OCaml 4.07) |
| Связанные ОС | Linux, macOS, Windows, FreeBSD |
| Выпущен | 1973 (ML); OCaml .ml usage since 1996 |
| Последняя версия | OCaml 5.3 (2025) |
| Открыть стандартное | Да · без роялти |
| Спецификация | v2.ocaml.org |
Конвертации ML
Вопросы и ответы сообщества
спрошено пользователямиВопросов пока нет - станьте первым, кто спросит о файлах ML.