[Home]MUMPS programming language

HomePage | Recent Changes | Preferences

MUMPS is a programming language whose name stands for
Massachusetts General Hospital Utility Multi-Programming System. It is now also referred to as 'M'.
It is a strictly imperative high level programming language, with a fully integrated database system. It is one of the earliest ANSI standard languages. In general, the syntax was borrowed from FORTRAN, but the data model is closer to LISP. Just as Lisp has a single data type (the list), MUMPS uses the single intrinsic data type of 'string of characters'. Data can be manipulated as integers, dates, floating point numbers, ...; all conversions are done intrinsically without programmer intervention. The primary data structure is usually described as multiple dimensional arrays, but it is actually a structure of multiple rank arrays each of which is a multiple dimesional array, laid upon each other. An alternate description is that the primary data structure is a string subscripted tree, with string values stored, in lexical order, at the leaf nodes and the interior nodes.

The biggest consequence of this internal representation is that database operations are economical (in both disk space and execution time). MUMPS is extremely well suited to real world data, which is often 'sparse' (ie has missing fields). There is no penalty in storage space if a defined data value is not present. This is an extremely helpful feature in a clinical context. MUMPS includes almost no operating system specific command syntax, very fewfile system interface commands, and no machine specific commands. It is thus quite portable. Additionally, database manipulation code is extremely brief. A MUMPS routine implementing a complex database interaction might be a page or two of code. The equivalent in a less high level language (C, Pascal, Fortran, ...) is likely to be an order of magnitude larger. MUMPS is a highly cost effective application programming tool.

The Veteran's Administration of the US Government officially adopted MUMPS as the programming language to be used to implement a planned patient Admission, Tracking, Discharge system in the early 1980's. The initial version of the system was delivered early and under budget, has been continuously extended in the years since, and is available at no cost in source code. The original system was called FileMan (implementing a full clinical database system) and additions in the years since have included a kernel, mail facilities, tcp interface facilities, etc. Nearly all of this is still available at no charge and in source code. The current version of the system is called VISTA. Nearly the entire VA hospital system in the United States, the Indian Health Service, and major parts of the Department of Defense hospital system (different than the VA's for historical reasons) all still run the system for clinical data tracking.

MUMPS is widely used in health care and financial operations world wide. There are active MUMPS communities (users, programmers, designers) in South America, Europe, Japan, Finland, Russia, ... in addition to the US. There is also a very active programmer community which has been distributing no charge MUMPS implementations and applications (often in source code) since the early 1980's. The MUMPS community was an early advocate of open source development and distribution.

MUMPS was developed by [Octo Barnett]?'s animal lab at [Massachusetts General Hospital]?in Boston in 1966/7?, originally running on a spare Digital Equipment Corporation PDP-7?. It is currently available on many operating systems, from MSDOS? 3.0, VAX VMS and OpenVMS?, Solaris, assorted mainframe OS, and Linux. Depending on the implementation, MUMPS systems may have from 3 to several thousand concurrently active jobs.

HomePage | Recent Changes | Preferences
This page is read-only | View other revisions
Last edited December 1, 2001 5:13 am by 206.146.129.xxx (diff)