moscow ml

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)
    

[email protected]