Extended ML

Extended ML is a general-purpose, high-level, wide-spectrum programming language based on the languages ML and Standard ML, covering both program specification and implementation. It extends the syntax of ML to include axioms, which do not need to be executable but can rigorously specify the behavior of a program. With this addition, the language can be used for stepwise refinement, proceeding gradually from an initial formal specification to eventually yield an executable Standard ML program. Correctness of the final executable with respect to the original specification can then be established by proving the correctness of each of the refinement steps. Extended ML is used for research into and teaching of formal methods in program development and specification, and research into automatic program verification.

Extended ML is neither related to the programming language Extensible ML (other than being similarly derived from ML), nor to the specification language Extensible Markup Language (XML).