A light-weight implementation of
Standard ML written by
Version: 1.20 implements the Standard ML Core language.
The sublanguage of Modules implemented by Moscow ML contains
signatures and non-nested structures, and identifies
structures with source files. It is certainly less expressive
than the full Standard ML Modules language, but the
and easy to use. It is the intention to implement the full
Standard ML Modules language (including functors) in due
course.
Compilation of a
signature produces a compiled interface
file, which is used when compiling other signatures and
structures.
Compilation of a structure produces a
bytecode file.
Bytecode files are compact and load fast. For instance, a
3250-line program consisting of 24 structures and 17
signatures compiles to 221 KB of bytecode and 241 KB of
compiled signatures. Starting the ML system and loading the
24 bytecode files takes 1-2 cpu seconds plus network delays,
less that 5 seconds real time in all.
Release 1.20 permits loading of precompiled bytecode files
into the top-level interactive session. The next release will
be able to create stand-alone executables by linking bytecode
files.
There is a mechanism for adding basis libraries, as in
CamlLight. Release 1.20 includes the basis libraries Array,
List, and Vector and the
MS-DOS version includes the
In principle, Moscow ML can be compiled on any
platformMoscow ML is particularly useful when fast compilation and
modest storage consumption are more important than fast
program execution.
Thanks to the efficient Caml Light run-time system used in
Moscow ML, it compiles fast and uses little memory, typically
5-10 times less memory than
SML/NJ 0.93 and 2-3 times less
slower than SML/NJ 0.93 compiled native code (fast on
IBMPCs, slower on
RISCs).
Borland C++ version 2.0 (or later) to recompile Moscow ML
(1994-12-12)