MIIS (programming language)

MIIS
ParadigmProcedural, database-oriented
DeveloperA. Neil Pappalardo, Curt W. Marble
Typing disciplineDynamic, weak
OSProprietary
LicenseProprietary
Influenced by
MUMPS

MIIS (Meditech Integrated Information System) is a proprietary programming language, integrated database, and operating system environment derived from MUMPS (Massachusetts General Hospital Utility Multi-Programming System).[1] It was created by A. Neil Pappalardo and Curt W. Marble at the Massachusetts General Hospital's (MGH) Laboratory of Computer Science between 1964 and 1968, originally running on Digital Equipment Corporation (DEC) PDP-series minicomputers.

History

[edit]

The evolution of the original MGH MUMPS language took two major directions: MUMPS proper and MIIS. While MUMPS proper was eventually standardized by American National Standards Institute (as ANSI X11.1) and ISO, MIIS was developed as a distinct, proprietary system. It became the core technology for Meditech, the healthcare information systems company Pappalardo co-founded in 1969.

Differences from MUMPS

[edit]

Whereas MUMPS runs as an interpreter under various operating systems, MIIS booted on DEC PDP-11 systems as the operating system with no external file system or drivers.

As an example of the differences between MUMPS and MIIS languages, the value of a logical expression in MUMPS may be false = zero or true = non-zero, canonically, one. In MIIS, the value false is "nil" (the empty string) and the value true is a string consisting of the ASCII delete character (code 127 decimal), and any string of length greater than zero is evaluated as logically true. In MUMPS, numbers are internally represented as integers, floating point, or exponential numbers. MIIS uses only strings and performs only basic integer arithmetic and comparisons.

There is also a philosophical difference between the dialects. MIIS took the approach that code should continue execution regardless of undefined variables, whereas MUMPS is designed to throw an <UNDEF> error. When encountering an undefined variable, MIIS treats it as nil.

Several commands differ between the two as well as some syntax. MIIS uses @ to dereference "namespaces". MUMPS uses @ as the "indirection" operator.

Language constructs

[edit]

"Hello, world!" in MIIS

[edit]

Commands may be executed interactively in the programming environment or a program. A program may be typed in. A line not containing a tab character is executed immediately. A line containing a tab is inserted into the program buffer after the current line and the line pointer is advanced. The tab must be either the first character after the line label or the very first character of the line, very similar to MUMPS.

E  ;Empty current program buffer direct command.
HELLO   ; Program begins with a label which is the program's default name.
        W "Hello, world!" ;Outputs literal string to current I/O stream.
        Q  ;Terminate program

;The following are all direct commands (no tab character):
F  ; "File" (save) the program.
D HELLO ;Execute program in buffer starting from tag HELLO.
Hello, world!
D @HELLO ;Load program HELLO into buffer and begin execution from the top.
Hello, world!
H  ;Exit the command interpreter, i.e., log out.

Usage

[edit]

In the 1980s, Brigham and Women's Hospital in Massachusetts used MIIS to program their Data General mainframe for its Brigham Integrated Computing System (BICS).[2]

In 1986, the Symposium on Computer Application in Medical Care (SCAMC) reported that Vancouver General Hospital also had an Integrated Cardiology Patient Management System written in MIIS.[3]

The MIIS language has been used in programming library systems as well as health industry systems. The OCLC's local library system, LS/2000, is one example.[4][1] It has also been used to create financial systems for insurance brokers, as seen in Ireland and the UK in the late 1970s.[citation needed]

References

[edit]
  1. ^ a b Kusnetzky, Dan (18 January 2012). "Preparing for a presentation at the OCLC conference center | Walking down the MUMPS and OCLC memory lane while waiting for conference attendees". ZDNET. Archived from the original on 1 December 2023. Retrieved 27 October 2025. Early in my career, I was a software engineer for DataPhase systems. One of my tasks was designing and implementing a MARC record database for the company's Automated Library Information System (ALIS). The system was implemented in MIIS, Meditech's implementation of the MUMPS system. MUMPS is now known as simply "M" and MARC is the U.S. Library of Congress machine readable cataloging record format.
  2. ^ Teich, Jonathan M.; Glaser, John P.; Beckley, Robert F.; Aranow, Meg; Bates, David W.; Kuperman, Gilad J.; Ward, Michael E.; Spurr, Cynthia D. (1999). "The Brigham integrated computing system (BICS): advanced clinical systems in an academic hospital environment". International Journal of Medical Informatics. 54 (3): 197–208. doi:10.1016/S1386-5056(99)00007-6. ISSN 1386-5056.
  3. ^ Kiely, F. Michael (9 November 1988). "An Integrated Cardiology Patient Management System". Proceedings of the Annual Symposium on Computer Application in Medical Care: 693–697. ISSN 0195-4210. PMC 2245171.
  4. ^ Lutz, Marilyn (1 March 1984). "OCLC's Local Library System: LS/2000". Library Hi Tech. 2 (2): 7–16. doi:10.1108/eb047542. ISSN 0737-8831.