El lenguaje de programación Standard ML o SML es un lenguaje descendiente del lenguaje ML que nació como el Meta Lenguaje del sistema LCF. A diferencia de muchos otros lenguajes de programación, SML tiene una especificación formal, como semántica operacional publicada en el libro The Definition of Standard ML.
- Standard ML of New Jersey (abreviado SML/NJ) es un compilador completo, junto con sus bibliotecas, herramientas, y documentación. ([1])
- Moscow ML es una implementación liviana, basada en el ambiente de ejecución de CAML Light. Implementa el lenguaje SML completo, incluyendo sus módulos, también incluye la mayor parte de la biblioteca de ase de SML. ([2])
- MLton es un compilador para programas completos (no maneja la noción de módulos). ([3])
- Poly/ML es una implantación completa de Standard ML. ([4])
- SML2c es un compilador para firmas estructuras y funciones que genera código en lenguaje C. Está basado en SML/NJ versión 0.67 y comparte con esa versión la mayor parte del ambiente de ejecución, pero no planta ni herramientas de puesta a punto ni perfiles de ejecución. La compatibilidad a nivel de los módulos con SML/NJ es completa.
Todas las distribuciones mencionadas son de tipo software libre. No hay versiones comerciales de SML disponibles.
- R. Milner, M. Tofte, R. Harper and D. MacQueen. The Definition of Standard ML (Revised).ISBN 0262631814.