Aviva Directory » Computers & Internet » Programming » M (MUMPS)

Originally, and still sometimes known as MUMPS, M is a general-purpose programming language designed for the healthcare industry, although now used in other applications, as well.

When the language was originally designed in the mid-1960s, there were few database systems in existence. In fact, the origin of the word "database" dates from this period. When Massachusetts General Hospital received a PDP-7 minicomputer, there was little available in the way of software, operating systems, or database support.

They decided to design their own from scratch. A team from the Laboratory of Computer Science at MGH, led by Neil Pappalardo, but also including Robert Greenes and Curt Marble, created MUMPS to be a multi-user operating system, programming language, and database, all in one. Modern implementations of the language do not use a dedicated operating system but run in Unix, Linux, macOS, and Windows environments. Its original name - MUMPS - was a reference to the Massachusetts General Hospital Utility Multi-Programming System.

MUMPS was an interpreted language, as it could be executed directly, without first being converted to object code, as would be the case with a compiled language. It was able to process large dynamic data files directly within the language, unlike most high-level languages.

The MUMPS development team chose to make portability between machines a goal and, indeed, it was soon adapted to a PDP-15, and to a number of other systems.

By the early 1970s, there were several implementations of MUMPS on a variety of hardware platforms, many of which were not compatible with one another. The National Center for Health Services Research and the National Bureau of Standards jointly sponsored an effort to facilitate the development of a standard MUMPS language. In 1972, the chief implementors and users of the various MUMPS dialects attended a conference, creating the MUMPS Users Group and the MUMPS Development Committee to develop a standard for the language. By 1975, a standard MUMPS language was adopted, and it was approved by ANSI in 1977.

During the 1980s, vendors were releasing MUMPS-based platforms that adhered to the ANSI standard, including Digital Standard MUMPS (DSM), which became VAX/DSM for the VAX/VMS platform. It was later ported to the Alpha in two versions: DSM for OpenVMS and DSM for Ultrix. InterSystems released InterSysems M (ISM) on VMS, M/11+ on the PDP-11 platform, M/PC for MS-DOS, M/DG for Data General, M/VM on IBM, and VM/CMS and M/UX for various Unix platforms. Others included CCSM, DTM, GT.M, MacMUMPS, MGlobal MUMPS, and MSM. A second revision of the ANSI standard for MUMPS was approved in 1984.

In 1990, a third revision of the ANSI standard was approved. In 1992, the same standard approved the use of M as an alternative name for the language. The 1990s also saw the release of Open M for Windows/NT and Open M for Alpha/OSF and Alpha/VMS.

By 2000, InterSystems had become the dominant vendor for MUMPS products after buying out several other vendors, consolidating these products into a single product line, known as OpenM. They also launched Cache, a commercial database management system used to develop software applications for healthcare management, financial services, and government operations, using the M technology.

Other implementations of the language include MUMPS V1, which has since been ported to several platforms, including Linux, macOS, Windows, and Raspberry Pi. In 2002, M21, a derivative of MSM, was released by the Real Software Company. One of the original creators of the MUMPS language, Neil Pappalardo, founded a company named MEDITECH, which extended and built onto the MUMPS language, naming it MIIS. Later, MEDITECH released another language, MAGIC. However, MEDITECH uses these languages internally, and does not resell them.

While the healthcare industry makes up the bulk of M users, the language is designed to build database applications and is suited for other industries, as well. It has made inroads into the banking and financial services industries, including Ameritrade, the Bank of England, and Barclays Bank. It is also being used by the European Space Agency in its mission to map the Milky Way.

The original implementations of the language were interpreted, although modern implementations may be partially or fully compiled. The ability to provide for multi-user systems was another important design feature, as even the earliest implementations supported multiple jobs running at the same time.

While there are those who will argue that M is an alternative name for the language, while MUMPS remains the official name, both M and MUMPS are commonly accepted names. The most recent ANSI standard for the language mentions both M and MUMPS.

By whichever name, the M or MUMPS programming language is the focus of this guide.



Recommended Resources

Search for M (MUMPS) on Google or Bing