- Massachusetts General Hospital Utility Multi-Programming System
-
MUMPS (Massachusetts General Hospital Utility Multi-Programming System) ist eine ursprünglich auf DEC PDP- und VAX-Computern entwickelte Programmiersprache (genauer eine Interpretersprache, die selbst Multitasking ermöglicht) mit integrierter Datenbank, die heute für fast alle gängigen Computer-Plattformen erhältlich ist.
MUMPS wurde 1966 auf die Initiative von Octo Barnett entwickelt. 1977 wurde die im Programmiersystem enthaltene gleichnamige Programmiersprache MUMPS ANSI-Standard (ANSI/MDC X11.1-1977), 1992 auch ISO-Standard (ISO/IEC 11756). Etwa zur gleichen Zeit setzt sich mehr und mehr der Begriff "M" oder "M-Technologie" (bzw. "M Technology" im englischen Sprachraum) durch.
Das Programmiersystem wurde ursprünglich überwiegend für Krankenhaus-Anwendungen verwendet. Typisch für Anwendungen aus dieser Zeit sind Programme, die auf einem Terminal laufen, ohne den Komfort grafischer Benutzeroberflächen und ohne Maus-Unterstützung. Zur Zeit seiner Entstehung war MUMPS den konkurrierenden Programmiersprachen in vieler Hinsicht überlegen und wurde bald auch in anderen Branchen (z. B. Handel, Banken und Logistik) eingesetzt. Aufgrund der extremen Langlebigkeit vieler betrieblicher IT-Systeme, bei denen eine Komplettablösung nicht nur teuer sondern auch sehr riskant ist, werden heute noch immer zahlreiche MUMPS-Systeme betrieben und weiterentwickelt. In dieser Beziehung besteht große Ähnlichkeit zu COBOL.
Sprachsyntax
Wie bei den meisten gängigen Programmiersprachen üblich, beginnt eine syntaktische Einheit mit einem Befehl bzw. einer Anweisung gefolgt von zumeist einem oder mehreren Parametern. Mehrere syntaktische Einheiten können in einer Befehlszeile durch die Trennung mit Leerzeichen aneinandergefügt werden. Kommentare innerhalb des Programmcodes werden mittels Semikolon eingeleitet. Innerhalb einer Befehlszeile gilt die strikte links/rechts-Abarbeitung, dieses bezieht sich auch auf mathematische Konstrukte. Punktrechnung vor Strichrechnung greift innerhalb von MUMPS nicht.
Variablen müssen innerhalb von MUMPS initialisiert aber nicht deklariert werden und sind innerhalb einer Programmausführung gültig. Selbst der Aufruf eines verzweigenden Programmes ändert nicht die Gültigkeit der Variablen. Eine Organisation der Gültigkeiten obliegt ausschließlich dem Programmierer. Eine wesentliche Stärke der Programmiersprache MUMPS ist die Subskribierung und automatische Sortierung von variablen Arrays. Diese steht sowohl im lokalen, flüchtigen Bereich wie auch im globalen, nichtflüchtigen Bereich nahezu gleichförmig zur Verfügung. Da globale Variablen in so genannten Datenfiles sortiert abgelegt werden, wird MUMPS auch häufig als Datenhaltesystem bezeichnet.
Ein wesentliches Merkmal der Programmiersprache MUMPS ist die ausgeprägte Möglichkeit der Verwendung von Abkürzungen der sprachsyntaktischen Elemente. Während die Vorteile zu Zeiten begrenzter Speichermöglichkeiten durchaus gegeben waren, führte die Nutzung dieser Möglichkeit zur Entstehung von schwer lesbarem und somit schwer pflegbarem Programmcode. Da sowohl lokale Variablen als auch syntaktische Elemente gleich benannt werden können, ist MUMPS-Programmcode in vielen Fällen nur nach intensiver Einarbeitung und Übung überhaupt lesbar.
Weitere Merkmale der Programmiersprache MUMPS sind:
- Postkonditionierungen
- Variablenindirektionen
- Ausführung von Variableninhalten als Programmcode
- Minimaler mathematischer syntaktischer Funktionsumfang
- Mehrdimensionale Arrayvariablen
- Ausgeprägter Mustervergleich
- Keine unterschiedlichen Datentypen
- Befehle und Anweisungen sind nicht case sensitive
Kodierung
Das klassische Beispiel
write "Hello world",!
Selbiges in Kurzform
w "Hello world",!
Unter Verwendung der Variable 'write' die durch 'set' dotiert wird
set write="Hello world" write write,!
Selbiges in Kurzform, 'set' wird durch 's', 'write' wird durch 'w' abgekürzt
s w="Hello world" w w,!
In einer Zeile geschrieben
s w="Hello world" w w,!
Weblinks
Wikimedia Foundation.