MUMPS

MUMPS ("Massachusetts General Hospital Utility Multi-Programming System"), or M, is an imperative, high-level programming language with an integrated transaction processing key–value database.

MUMPS-based information systems, such as Epic Systems', provide health information services for over 78% of patients across the U.S.[1] A unique feature of the MUMPS technology is its integrated database language, allowing direct, high-speed read-write access to permanent disk storage.

[2] MUMPS was developed by Neil Pappalardo, Robert A. Greenes, and Curt Marble in Dr. Octo Barnett's lab at the Massachusetts General Hospital (MGH) in Boston during 1966 and 1967.

[3] It grew out of frustration, during a National Institutes of Health (NIH)-support hospital information systems project at the MGH, with the development in assembly language on a time-shared PDP-1 by primary contractor Bolt Beranek & Newman, Inc. (BBN).

MUMPS came out of an internal "skunkworks" project at MGH by Pappalardo, Greenes, and Marble to create an alternative development environment.

Octo Barnett and Neil Pappalardo obtained a backward compatible PDP-9, and began using MUMPS in the admissions cycle and laboratory test reporting.

[5] Some aspects of MUMPS can be traced from RAND Corporation's JOSS through BBN's TELCOMP and STRINGCOMP.

An advanced feature of the MUMPS language not widely supported in operating systems or in computer hardware of the era was multitasking.

Although time-sharing on mainframe computers was increasingly common in systems such as Multics, most mini-computers did not run parallel programs and threading was not available at all.

Even on mainframes, the variant of batch processing where a program was run to completion was the most common implementation for an operating system of multi-programming.

Versions of the MUMPS system were rewritten by technical leaders Dennis "Dan" Brevik and Paul Stylos[6] of DEC in 1970 and 1971.

During the early 1980s several vendors brought MUMPS-based platforms that met the ANSI standard to market.

The chief executive of InterSystems disliked the name MUMPS and felt that it represented a serious marketing obstacle.

Secondary language features were included to help programmers make applications using minimal computing resources.

Early MUMPS memory partitions were limited to 2048 bytes so aggressive abbreviation greatly aided multi-programming on severely resource limited hardware, because more than one MUMPS job could fit into the very small memories extant in hardware at the time.

Since memory was tight originally, the language design for MUMPS valued very terse code.

Spaces and end-of-line markers are significant in MUMPS because line scope promoted the same terse language design.

Additionally, the MUMPS language design requires that all subscripts of variables are automatically kept in sorted order.

By using only non-negative integer subscripts, the MUMPS programmer can emulate the arrays data type from other languages.

Although MUMPS does not natively offer a full set of DBMS features such as mandatory schemas, several DBMS systems have been built on top of it that provide application developers with flat-file, relational, and network database features.

Early MUMPS programmers would often store a structure of related information as a delimited string, parsing it after it was read in; this saved disk access time and offered considerable speed advantages on some hardware.

In contrast to languages in the C or Wirth traditions, some space characters between MUMPS statements are significant.

[19] Language features include: MUMPS supports multiple simultaneous users and processes even when the underlying operating system does not (e.g., MS-DOS).

Their development work (and subsequent contributions to the free MUMPS application codebase) was an influence on many medical users worldwide.

In 1995, the Veterans Affairs' patient Admission/Tracking/Discharge system, Decentralized Hospital Computer Program (DHCP) was the recipient of the Computerworld Smithsonian Award for best use of Information Technology in Medicine.

The European Space Agency announced on May 13, 2010, that it will use the InterSystems Caché database to support the Gaia mission.