MUMPS

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
Dieser Artikel behandelt die Programmiersprache. Für die Krankheit siehe Mumps.

MUMPS (Massachusetts General Hospital Utility Multi-Programming System), oder alternativ M, 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[Bearbeiten]

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

Programmaufbau[Bearbeiten]

Für den Programmaufbau gelten feste Regeln:

  • Eine Programmzeile beginnt entweder mit einem Statement / Tag oder einem Leerzeichen oder einem TAB
  • Ein alphanumerisches Statement / Tag muss zwingend mit einem Buchstaben beginnen
  • Statement / Tags werden mittels eines Leerzeichen oder TABS vom Code getrennt werden
  • Die erste Zeile eines Programmes muss mit einem Statement / Tag beginnen, welcher dem Programmnamen entspricht
  • Statements / Tags sind case sensitive
  • Statements / Tags sind entweder absolut oder relativ zu erreichen
  • Sprünge innerhalb eines Programmes sind über den Befehl 'GO' bzw. 'g' einzuleiten
  • Statements / Tags werden, wie in den meisten Programmiersprachen üblich, mittels Klammern zur Parameterübergabe deklariert
  • Innerhalb eines Programmes ist sowohl die einfache wie auch mehrfache Punktnotation möglich
  • Unterprogramme innerhalb eines Programmes können entweder als Programm oder/und als Funktion aufgerufen werden

Schematischer Programmaufbau

Prog ;Erste Zeile des MUMPS-Programmes, der Programmname 'Prog' bildet das erste Statement / Tag
     ;... Programmcode ...
Tag1 ;Statement / Tag, beeinflusst den Programmablauf nicht, dient ausschließlich als Sprungmarke
     ;... Programmcode ...
     do
     . ;Einfache Punktnotation
     . do
     .. ;Mehrfache Punktnotation
     . ;Zurück zur einfachen Punktnotation
     q  ;Programmende

Tag2 ;Unterprogramm, wird nur ausgeführt wenn der Programmcode hierhin verzweigt
     ;... Programmcode ...
     q  ;Entweder Ende des Unterprogrammes oder Programmende, abhängig vom Aufruf des Unterprogrammes

T3() ;Unterprogramm oder/und Funktion, abhängig vom Aufruf
     q  ;Ende des Unterprogrammes

T4() ;Funktion, da dass Funktionsende mit einem Rückgabewert definiert ist
     q "" ;Ende mit Wertrückgabe als Funktion

Kodierung[Bearbeiten]

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[Bearbeiten]