Standard ML
| Standard ML | |
|---|---|
| Paradigm | Multi-paradigm: functional, imperative, modular | 
| Family | ML | 
| First appeared | 1983 | 
| Stable release | Standard ML '97
   / 1997 | 
| Typing discipline | Inferred, static, strong | 
| Filename extensions | .sml | 
| Website | smlfamily | 
| Major implementations | |
| SML/NJ, MLton, Poly/ML | |
| Dialects | |
| Alice, Concurrent ML, Dependent ML | |
| Influenced by | |
| ML, Hope, Pascal | |
| Influenced | |
| Elm, F#, F*, Haskell, OCaml, Python, Rust, Scala | |
Standard ML (SML) is a general-purpose, high-level, modular, functional programming language with compile-time type checking and type inference. It is popular for writing compilers, for programming language research, and for developing theorem provers.
Standard ML is a modern dialect of ML, the language used in the Logic for Computable Functions (LCF) theorem-proving project. It is distinctive among widely used languages in that it has a formal specification, given as typing rules and operational semantics in The Definition of Standard ML.