A programming language with extensive tools for the support of database management systems. MUMPS was originally used for medical records and is now widely used where multiple users access the same databases simultaneously, e.g. banks, stock exchanges, travel agencies, hospitals.
A MUMPS program hardly ever explicitly performs low-level operations such as opening a file - there are programming constructs in the language that will do so implicitly, and most MUMPS programmers are not even aware of the operating system activity that MUMPS performs.
Syntactically MUMPS has only one data-type: strings. Semantically, the language has many data-types: text strings, binary strings, floating point values, integer values, Boolean values. Interpretation of strings is done inside functions, or implicitly while applying mathematical operators. Since many operations involve only moving data from one location to another, it is faster to just move uninterpreted strings. Of course, when a value is used multiple times in the context of arithmetical operations, optimised implementations will typically save the numerical value of the string.
MUMPS was designed for portability. Currently, it is possible to share the same MUMPS database between radically different architectures, because all values are stored as text strings. The worst an implementation may have to do is swap pairs of bytes. Such multi-CPU databases are actually in use, some offices share databases between VAX, DEC Alpha, SUN, IBM PC and HP workstations.
Versions of MUMPS are available on practically all hardware, from the smallest (IBM PC, Apple Macintosh, Acorn Archimedes), to the largest mainframe. MSM (Micronetics Standard MUMPS) runs on IBM PC RT and R6000; DSM (Digital Standard Mumps) on the PDP-11, VAX, DEC Alpha, and Windows-NT; Datatree MUMPS from InterSystems runs on IBM PC; and MGlobal MUMPS on the Macintosh. Multi-platform versions include M/SQL, available from InterSystems, PFCS <firstname.lastname@example.org> and MSM.