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
EsiObjects is an object-oriented (OO) application development environment, based on 1995 ANSI Standard MUMPS implementations, including Caché and GTM, extending the language with OO language constructs. A Virtual Machine Guest Operating System containing all of ESI’s relevant software and training materials has been released by the MUMPS community, containing an installed EsiObjects and computer-based instruction packages. Documentation, tutorials, and downloads are featured.
http://www.esiobjects.org/
Several answers to frequently asked questions are archived here from a 1997 FAQ on M technology and the MUMPS language, according to the features of the database system and programming language as it was at that time. The answers offer a description of the language and its uses, make comparisons between MUMPS and other programming languages, and describe the features of the language. Qualities that programmers enjoy are highlighted as well as the negatives.
http://www.faqs.org/faqs/m-technology-faq/
The commercial database management system from InterSystems uses the M programming language technology. Serving health, business, and government, its industries, and products are highlighted, and information about its uses are put forward. Its support services and resources are highlighted, version information, documentation, and a pre-release trial version are available. Other resources include news topics, blog articles, brochures, infographics, and video.
https://www.intersystems.com/products/cache/
Kevin C. O’Kane, Professor Emeritus at the Computer Science Department of the University of Northern Iowa, the author of books, a user’s guide, introduction, and tutorial on the MUMPS programming language, offers links to where these can be obtained, largely for free, and a MUMPS interpreter, open-source code distribution, may be downloaded from the site. Code examples from the book reposted, along with information about applications created with MUMPS.
http://www.cs.uni.edu/~okane/
M21 is a 21st-century implementation of the M language/database system. The goals for the implementation are stated, along with a language definition, the product range for the database system, and pricing is featured. Other resources include support and upgrade policies, consultancy and training services, technical suggestions for various implementations, case studies and client testimonials, and user documentation in HTML and PDF formats.
http://www.m21.uk.com/
The MiniM Database is a MUMPS-based client/server database management system that implements transactions and some language extensions. An overview of the product, documentation, and information on getting started are put forth, including client GUI utilities, debugger, the server connects, web access, external ZDLL call, and the MiniM Embedded Edition. Other resources include GT.M tools, cache tools, a knowledge base, and licensing information.
http://www.minimdb.com/
The M Technology Association was accredited by ANSI as a Standards Development Organization that produces voluntary standards related to the use of the programming language M[UMPS]. When the M Technology Association ceased to exist, January 1, 2002, this accreditation elapsed, as well as all existing ANSI standards. Today, both MUMPS and M are used to designate the language. The standards are published, along with committee members and other information.
http://71.174.62.16/MDC/
The M programming language, designed in 1966 for the healthcare industry, is a general-purpose language providing ACID (atomic, consistent, isolated, durable) transaction processing. Intended as a resource for MUMPS programmers, the site includes a brief overview of the language, licensure information, and links to a user group discussion forum, an informational WIKI, and links to several other sites relating to the M (MUMPS) programming language.
http://www.mumps.org/
Powered by a phpBB script, the online discussion forum serves as a venue for users of the MUMPS programming language to discuss topics related to the database system and language. Discussion topics include introductions and general information, standard features of the language, implementations, and vendor-specific features, MUMPS projects, programming and database language instruction, the MUMPS Development Committee, and implementations.
http://www.mumpster.org/
Patterson, Gray & Associates: M3-Lite
Created by Patterson-Gray, M3-Lite is a fully functional database server that runs on the Microsoft Windows platform and includes a system window providing a control panel for monitoring M3-Lite operations, as well as to help launch browser sessions, terminal sessions, and GUI applications. M3-Lite incorporates the M programming language and should be compatible with most standard M software. Information on programming, purchasing, and support services are included.
http://pattersongray.com/pga/m3home.htm
PFCS was an early participant in the fields of Unix system administration and infrastructure architecture. Among the projects that the company was involved in was the development of PFCS MUMPS, the PFCS Corporation’s implementation of MUMPS for the Unix platform, often known simply as Unix MUMPS. A profile of the language, its features, end-user information, and developer information, including a developer support package, as well as supported platforms, are featured.
http://pfcs.com/projects/unix-mumps/
Hosted on SourceForge, the full multi-user standard MUMPS implementation may be downloaded for FreeBSD or Linux. Current and previous release information is provided, along with the documentation, installation instructions, and a discussion of managing a MUMPS installation. Technical information, technical details about the MUMPS web server, and information about supplemental utilities are included. Links to related sites are included.
http://mumps.sourceforge.net/
The Annotated M[UMPS] Standards
This documentation on this site provides an overview of the historical standards for the programming language known, variously, as MUMPS, M, M[UMPS], and Caché ObjectScript. The standards for the language are given, including the differences between various versions of the standards, beginning in 1977, as well as examples of the language elements. Rather than viewing the standard by year, the site refers to language elements, which then gives information, including years.
http://71.174.62.16/Demo/AnnoStd