Free Standard ML Compilers
for the Standard ML Programming Language
Free Standard ML Compilers
Standard ML (sometimes abbreviated "SML") is a general purpose functional programming language. It has modules, type checking and type inference. It is a descendant of the original ML, which was used for the LCF (Logic for Computable Functions) theorem-proving system. The formal rules for the Standard ML language can be found in The Definition of Standard ML - Revised. This page lists free Standard ML compilers, many (if not all) of which are open source.
Free ML Compilers for the Standard ML Programming Language
- Poly/ML (Windows, Linux, etc)
Poly/ML is a full implementation of the Standard ML language as given in the The Definition of Standard ML (Revised), also known as ML97. It has a foreign language interface that allows dynamic link libraries to be loaded and functions within them called from within your ML program. There is also an X-Window interface using Motif and a Windows programming interface. It comes with a symbolic debugger. It is open source with the source code containing binary versions of the compiler as well. Native code versions are available for i386, x86-64, PPC and SPARC. (Yes, Windows and Linux are among the supported systems.)
- MLton (Windows, Linux, FreeBSD, Darwin, etc)
MLton is an optimizing Standard ML compiler that runs on a wide variety of operating systems, including Windows, Linux, FreeBSD, NetBSD, OpenBSD, Darwin/Mac OS X, HPUX, AIX, and SPARC Solaris. It implements the full language as well as has a complete implementation of the Standard ML Basis Library (all the required modules and many optional modules). It generates standalone executables, has support for large files, can compile large programs, supports native integers, reals and words, unboxed arrays, etc. It comes with tools like a profiler, a lexer, parser generator and has extensions that support calling from SML to C and vice versa.
- Standard ML of New Jersey (Windows, etc)
Standard ML of New Jersey, or SML/NJ, compiles the Standard ML '97 programming language. It comes with the libraries, tools, documentation and source code (it's open source). Pre-compiled binaries are available for Windows and Unix-type systems (eg, SPARC, RS/6000, HPUX, etc).
- MLKit (Linux)
MLKit is a compiler for the Standard ML language, as defined in the 1997 edition of The Definition of Standard ML (Revised) and implements most of the Standard ML Basis Library specification. It integrates reference-tracing garbage collection with region-based memory management, has region profiling, interfaces with C in that your ML programs can call C functions using C calling conventions, can generate either x86 native code for Linux or bytecode, etc. The program is open source. Precompiled binaries for Linux are also available.
- SML.NET (Windows)
SML.NET is a compiler for the functional programming language Standard ML that targets the .NET Common Language Runtime (CLR). It extends the Standard ML ("SML") language to support use of the .NET framework libraries and code written in the other .Net languages like C# or Visual Basic. It compiles all of SML '97 (with some discrepancies) and implements almost all of the Standard ML Basis Library.
- MLj (systems with the Java runtime)
MLj is a compiler for the Standard ML language that generates Java bytecodes. The resulting program requires a Java virtual machine to run. The website says that it "compiles the functor-free subset of the new SML'97 language plus some new language extensions". (The extensions allow you to interface with other Java VM languages, like Java itself.) It shares some of the code base with SML.NET (also listed on this Free Standard ML Compilers page).
- Moscow ML (Windows, Linux)
How to Link to This Page
It will appear on your page as: