MUMPS (Massachusetts General Hospital Utility Multi-Programming System, kurz M) ist eine imperative höhere Programmiersprache mit integrierter transaktionsorientierter Schlüssel-Wert-Datenbank. Neil Pappalardo entwarf sie 1966 am Massachusetts General Hospital als Ersatz für Assembler in der Medizininformatik; die Sprache ist seit 1977 ANSI- und ISO-standardisiert.

Kernkonzept: Globale Variablen

Das Besondere an MUMPS sind die globalen Variablen (Globals): persistent gespeicherte, hierarchische Schlüssel-Wert-Bäume, die direkt in der Datenbank liegen und wie normale Variablen angesprochen werden. Ein ^-Zeichen kennzeichnet eine Global-Referenz:

SET ^Patient(1001,"Name")="Müller"
SET ^Patient(1001,"Diagnose")="A411"

Wichtige Befehle

  • SET / KILL — Werte zuweisen bzw. löschen
  • WRITE / READ — Ausgabe bzw. Eingabe
  • DO / GOTO — Unterroutine aufrufen bzw. springen
  • IF / ELSE / FOR — Kontrollstrukturen
  • QUIT — Unterroutine verlassen, HALT — Programm beenden
  • NEW — lokale Variablen beim Unterprogramm-Aufruf schützen

Systemfunktionen beginnen mit $, etwa $PIECE (Stringsegment), $LENGTH (Länge) oder $ORDER (nächster Schlüssel in einer Global).

Einsatzgebiete

MUMPS steckt in der US-Veteranenverwaltung (VistA/VA-EMR), in Krankenhausinformationssystemen (Meditech, Epic) und in freien Implementierungen wie GT.M (Greystone Technology M) und YottaDB. Das Abkürzungssystem ist standardisiert: jede Standard-Anweisung hat genau eine zugelassene Kurzform.

Verwandte Einträge: ABAP-Befehle, COBOL-Befehle und JCL-Befehle.