110 likes | 401 Views
MUMPS (aka M). James Paull CS 354. General Information. M assachusetts General Hospital U tility M ulti- P rogramming S ystem Originally designed as a platform for handling healthcare databases Utilizes its own database via a hierarchical file system Extremely fast. History.
E N D
MUMPS (aka M) James Paull CS 354
General Information • Massachusetts General Hospital Utility Multi-Programming System • Originally designed as a platform for handling healthcare databases • Utilizes its own database via a hierarchical file system • Extremely fast
History • Invented during 1960s by MGH Animal Laboratory workers • Primary inventors: • Dr. Octo Barnett, head of lab • Neil Pappalardo, MIT graduate • 1972 – MUMPS Development Committee • 1977 – Language Standard approved • 1992 - M
History, continued • 1980s – Commercial variations • Intersystems MUMPS (Caché) • Present Day • Veteran’s Administration hospital system • Department of Defense hospital system
MUMPS debate • Pros • Rapid execution • Scalability • Simplicity of database access • Cons • Interface (roll and scroll) • Poor integration • Few tools • No error handling, errors terminate execution
Language design • General Purpose • Originally healthcare-centric • Interpreted • Front-end for database • Semi-relational • Dynamic code
MUMPS syntax / Writability • hello() write “Hello, World!”,! quit • hello() w “Hello, World!”,! q • Shortened command names • Limited commands • Whitespace
MUMPS data types • Single data type • Interpreted as a string, integer, or floating-point • Boolean ( 0 is false, all other values are true) • No declarations • Ambiguity affects reliability • Global variables • Representation of database • ^PATIENT(NAME, WARD, BED, DOCTOR) = PATIENTID
Global variables • ^PATIENT(NAME, WARD, BED, DOCTOR) = PATIENTID • Indexes need not be integers and can be null • ^PATIENT(“SMITH, JOHN”, “EAST 2”, 123, “WELBY, MARCUS”) = 12 • ^PATIENT(“WILLIAMS, TOM”, , , “BROTHERS, JOYCE”) = 16 • Automatic sorting • $ORDER command iterates through all elements
Readability • FOR C=0:1:5 . SET:M = C * C . SET:S = C + C . IF S >= M N=N+1 . ELSE QUIT WRITE N • F C=0:1:5 S:M=C*C S:S=C+C I S>=M N=N+1 E Q W N
Conclusion • Originally an industry specific language • Low-cost solution • For better or for worse, MUMPS still relevant