The MM programming language's description of behaviour, and its
modularisation mechanisms, are based
on solid mathematical foundations: category theory and
sheaf semantics.
The MM programming language takes into account recent user-interface
research on the causes of spreadsheet errors.
The MM compiler passes MM programs through a series of well-defined
program transformations. Programs are translated to an "abstract virtual
spreadsheet machine". They are then translated to a specific target - for
example
LotusScript, Visual Basic, comma-separated value files, SLK files, the
Web-based spreadsheet applet - by one of several modular
code-generator back-ends.
The MM compiler is written in Java for portability and
security. It uses a
a higher-order functional programming
style, for provability.
Its parser is based on an efficient, well-supported and popular
parser-generator, JavaCC.
MM comes with a portable spreadsheet-and-editor applet that can
be used over the Web for distance-teaching