¿Qué es el formato de archivo ML?
.ml es la extensión de archivo de fuente estándar para el lenguaje de programación OCaml, un lenguaje funcional con tipado estático y características orientadas a objetos e imperativas desarrollado en INRIA, París. La extensión deriva de ML (Meta Language), la familia de lenguajes de la que desciende OCaml.
Cada archivo .ml define un módulo OCaml, nombrado automáticamente según el archivo con su primera letra en mayúscula: parser.ml se convierte en el módulo Parser. El archivo de interfaz complementario .mli declara lo que el módulo expone públicamente, actuando de manera similar a un archivo de cabecera de C.
Los archivos fuente contienen secuencias de declaraciones OCaml: enlaces let, definiciones de type, definiciones de module y functores, declaraciones de excepciones y definiciones de clases. Una expresión let () = ... en el nivel superior sirve como punto de entrada del programa por convención.
Los archivos son compilados por ocamlc a código de bytes (bytecode) o por ocamlopt a código de máquina nativo. El sistema de construcción Dune y el gestor de paquetes opam son las herramientas estándar de gestión de proyectos. OCaml 5.x (desde 2022 en adelante) introdujo manejadores de efectos y paralelismo multinúcleo, añadiendo nueva sintaxis no aceptada por compiladores más antiguos.
La extensión .ml también se ve ocasionalmente en archivos de Standard ML, aunque esa comunidad suele utilizar .sml en su lugar. El uso dominante es OCaml, que alcanzó la versión 5.3 en 2025.
Seguridad y protección
RIESGO: LOWCódigo fuente de texto plano; sin riesgo de ejecución al abrirse en un editor de texto. El riesgo solo existe al compilar y ejecutar: revise el código antes de compilar archivos .ml no confiables.
Detalles del formato
en pocas palabras- Archivo fuente de Standard ML (SML) - Algunas implementaciones de Standard ML aceptan .ml pero .sml es la extensión convencional.
- Archivo fuente de Reason/ReasonML - La sintaxis Reason de Facebook para OCaml coexiste ocasionalmente con archivos .ml en el mismo proyecto.
Programas que abren archivos ML
Detalles técnicos
especificación profunda| Familia de lenguajes | ML (Meta Language) - funcional, con tipado estático |
| Nombramiento de módulos | Cada archivo `.ml` = un módulo; el nombre del archivo en mayúsculas se convierte en el nombre del módulo |
| Compañero de interfaz | El archivo `.mli` declara la firma pública del módulo (análogo a un header) |
| Compilador de código de bytes | `ocamlc` → archivo objeto `.cmo` / salida de biblioteca `.cma` |
| Compilador nativo | `ocamlopt` → `.cmx` / `.cmxa` / binario nativo |
| Sistema de construcción | Dune (estándar moderno); OMake, Makefile (heredados) |
| Codificación | UTF-8; Unicode completo soportado desde OCaml 4.14 (bases de código heredadas: ASCII) |
| Adiciones de sintaxis notables | OCaml 4.02 (atributos), 4.08 (operadores de enlace), 5.x (efectos, dominios) |
| Sistema de tipos | Hindley-Milner con GADTs, variantes polimórficas y módulos de primera clase |
| Tipo MIME | `text/x-ocaml` |
| Módulo de biblioteca estándar | `Stdlib` (renombrado desde `Pervasives` en OCaml 4.07) |
| SO asociado | Linux, macOS, Windows, FreeBSD |
| Lanzado | 1973 (ML); OCaml .ml usage since 1996 |
| Última versión | OCaml 5.3 (2025) |
| Estándar abierto | Sí · libre de regalías |
| Especificación | v2.ocaml.org |
Conversiones de ML
Preguntas y respuestas de la comunidad
preguntado por usuariosAún no hay preguntas; sea el primero en preguntar sobre los archivos ML.