from
The Free On-line Dictionary of Computing (8 July 2008)
Moscow ML
A light-weight implementation of {Standard ML} written by
Sergei Romanenko <[email protected]> of the
{Keldysh Institute of Applied Mathematics} with assistance
from Peter Sestoft <[email protected]>, {Royal Veterinary
and Agricultural University}. Moscow ML is based on {CAML
Light}.
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
{type-safe} {separate compilation} facility is simple, useful,
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 {Caml
Light}. Release 1.20 includes the basis libraries Array,
List, and Vector and the {MS-DOS} version includes the
Graphics library from {Caml Light}.
In principle, Moscow ML can be compiled on any {platform}
supported by {Caml Light}. So far we have tried {Intel
80386}-based {IBM PCs} running {MS-DOS}, {Microsoft Windows},
{OS/2} or {Linux}, {DEC MIPS} running {Ultrix}, {DEC Alpha}
running {OSF/1}, {Sun-4} running {SunOS}, {HP9000} running
{HP/UX}, {SGI MIPS} running {IRIX} 5.
Moscow 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
than {Edinburgh ML}. Yet the bytecode is only 3 to 10 times
slower than SML/NJ 0.93 compiled native code (fast on {IBM
PCs}, slower on {RISCs}).
DOS
(ftp://dina.kvl.dk/pub/Peter.Sestoft/mosml/mos12bin.zip).
Linux
(ftp://dina.kvl.dk:pub/Peter.Sestoft/mosml/linux-mos12bin.tar.gz).
Source
(ftp://dina.kvl.dk:pub/Peter.Sestoft/mosml/mos12src.tar.gz).
{Caml Light} 0.61 and {gcc} are required to recompile Moscow
ML for {Unix} or Caml Light 0.61, {djgpp}, {Perl}, and
{Borland C++} version 2.0 (or later) to recompile Moscow ML
for {DOS}.
(1994-12-12)