[mod.computers.vax] Mumps

ross@harvard.HARVARD.EDU@ulowell.UUCP (01/15/87)

A friend of mine running an 8300 recently asked about Mumps for VMS.  I 
seem to remember this from somewhere, but can place it well enough to find
it.  Does anybody know if such a language exists, and where I could find it?
	Also while I'm at it, has anybody tried loading ltd012 with ds2010.
The tape of ds2010 comes with ltd011.  Just thought I'd ask before I
upgraded and gunned down all my users because of incompatible versions.
	Lastly, have any 8300 users noticed a problem with the machine
forgetting what time it is on OS reboots? 
	Ok, well to make up for all these questions, here's a mundane little
tidbit.    If you rerun netconfig, you must rerun dsvconfig to make VMS
load decservers, let alone use them.  Logical, yes, documented?  Well I 
haven't found it yet :-)

							Ross
 

sasaki@HARVARD.HARVARD.EDU.UUCP (01/18/87)

MUMPS is a programming language that was developed at Massachusetts
General Hospital. MUMPS is a lot like FOCAL with an added data
structure, sparse multi-dimensional arrays. The arrays can either be
local, or global; global arrays are a natural for databases. There are
also lots of string functions.  For some reason MUMPS became popular
in medical areas, but practically unheard of outside of it.

There are at least two implementations of MUMPS available for the VAX.
One is from DEC and the other is from a company in Boston,
Interpretive Data Systems (I think). MUMPS doesn't run very well on
VMS since it has it's own ideas about how a system should work and VMS
is too general purpose to run with any kind of speed. MUMPS on a
PDP-11/70 (or more modern, equivalents) run MUMPS programs faster than
on a VAX-11/780.

My personal opinion is that MUMPS is a dinosaur. It is experiencing a
revival with low cost, high speed PDP-11's and there is an effort in
Japan to build a MUMPS CPU. It's main problem is that most MUMPS
implementations encourage a programing style that produces unreadable,
and unmaintainable code.

Just a few things:

  Programs are interpreted, and since comments can contain data, or
  even program text, comments are interpreted every time a program is
  run. Since comments that aren't data or program text necessarily
  slow down a program, programs don't have too many comments.

  All variables are global, i.e., procedures and functions written in
  MUMPS don't have local variables.

  Calls to functions don't have arguments/parameters.

  Most implementations don't tokenize program text, so the actual
  ascii text is scanned every time a statement is executed. Since
  scanning text takes time, most programmers use short variable names
  (longer names take longer to execute) for everything.

Enough of this, it is just too easy...

This reminds me of a talk given by one of the residents in Nuclear
Medicine about 10 years ago. Every Wednesday morning a resident or a
staff member would give a small talk about what they were doing. The
hospitals were affiliated with Harvard Medical School and there were
several folks from Mass General in the audience.

Jason was giving his talk on programming languages in Nuclear
Medicine. He talked about the types of computation needed and talked
about Basic, Fortran, FORTH, and a rather bizarre macro language
designed specifically for Nuclear Medicine by DEC. When the question
and answer period came, someone stood up and asked "What about MUMPS?"
Without missing a beat Jason replied "Mumps is a disease, and as
physicians we must strive to stamp it out."
----------------
  Marty Sasaki				uucp:   harvard!sasaki
  Strategic Information			arpa:	sasaki@harvard.harvard.edu
  80 Blanchard Road			bitnet: sasaki@harvunxh
  Burlington, MA 01803			phone:	617-273-5500

mitch@TCGOULD.TN.CORNELL.EDU (Mitch Collinsworth) (01/20/87)

In article <8701150244.AA02396@ulowell.CS.ULowell.Edu> ross@harvard.HARVARD.EDU@ulowell.UUCP (Ross Miller) writes:
>A friend of mine running an 8300 recently asked about Mumps for VMS.  I 
>seem to remember this from somewhere, but can place it well enough to find
>it.  Does anybody know if such a language exists, and where I could find it?

I don't know anything about the MUMPS language, but I do know it is used
here at Cornell at the College of Veterinary Medicine because I have seen
it in their job postings :-).  I don't know anyone there personally, but the
Cornell phonebook says the Director of the Veterinary Medical Computing
Facility is John Lewkowicz and his phone number is 607-253-3606.  Maybe he
can give you the name of the vendor.

-Mitch

LEICHTER-JERRY@YALE.ARPA (01/20/87)

    A friend of mine running an 8300 recently asked about Mumps for VMS.  I 
    seem to remember this from somewhere, but can place it well enough to find
    it.  Does anybody know if such a language exists, and where I could find
    it?

Available as a DEC product; it's known as VAX DSM (for Digital Standard
Mumps), and produced by Digital's Medical Systems Group.  The most recent
document I have lying around - I picked it out of a pile of extras somewhere
or other - is the VAX DSM Programmer's Guide (AA-HM23A-TE, June 1986), which
corresponds to VAX DSM V3.0.

I understand there's also a third-party version out there, though I don't
know anything about it (like who sells it).  (The only context I've heard it
mentioned in was in problems it had in upgrading to V4 a while back.)

							-- Jerry
-------

edi@HADASSAH.BITNET (Edi Landau) (01/21/87)

Marty Sasaky's nasty comments about Mumps are all true, BUT being
meself a MUMPS programmer for over eight years, I fell honour
bound to reply:

Comments:  True Mumps comments are (typically) only used in the
label line of a subroutine.  All other comments will be removed
by the editor when saving the routine.

Scope of variables:  The days of old are gone.  In all new Mumps
implementations the scope of variables can be limited with the
NEW command.

Most implementations now do precompile Mumps code.

Also:  Mumps programs are written much faster than programs in
conventional languages.  They are obviously debugged much faster
and lo-and-behold will execute much faster than equivalent RMS
programs.  Since one can write FORTRAN (styled) programs in any
langauge (even LISP) one of course can write them in Mumps too
(That's like the man who speaks seven langauges, all of them in
Yiddish).

To summarize:  Mumps is not a general purpose language, but what
Mumps is intended to do, it does indeed very well.  It does need
some getting used to, but it easily becomes an addiction.

Edi Landau,    Edi@Hadassah.BITNET
Hadassah University Hospital, Jerusalem, Israel.

craig@mumps.DEC.COM (So many books, so little time.) (01/24/87)

A recent query asked:
 
          A friend of mine running an 8300 recently asked about Mumps
          for VMS.  I seem to remember this from somewhere, but can
          place it well enough to find it.  Does anybody know if such
          a language exists, and where I could find it? 
 
MUMPS is a programming language developed at Mass. General Hospital in
the late 60's.  It is an ANSI standard language, and has a large and
active community of users world-wide. 

It was originally developed to handle medical databases, but these
requirements led to the development of a language which is optimized
for handling any sort of large database, in an on-line, interactive
environment. 

Far from being "a dinosaur", as has been stated in this mailing by
people quoting 10 year old (mis)information, MUMPS is thriving world-
wide.  (I might point out that the dinosaurs evolved into birds, with
a concommitant increase in efficienty of locomotion).  It is popular
with some of the largest corporations in the US, including Digital
Equip. Corp., Shell Oil, General Motors, Coca Cola, American Airlines,
Chase Manhattan Bank and others.  Even IBM has recently announced the
availability of MUMPS on some of its systems. 

MUMPS has 1 data type; the variable-length string (numbers being a
special case of a string), and one data structure; the subscripted
array. 

A MUMPS array contains number or strings subscripts, which are
automatically sorted according to the ASCII value of the subscript.
(This means a MUMPS programmer never has to write a sort routine!)  If
the array is on disk, its called a global.  The only difference to the
programmer between an array in memory, or one on disk is the "^"
character preceeding the array reference. 

The programmer logically sees the database as a heiarchial tree.  A
rich set of commands and functions exist to allow the programmer to
traverse the tree, retrieve any element, determine whether an element
is defined or not, etc. 

Most commercial implementations of the language store globals as
multi-way balanced B-trees, providing excellent I/O response time when
the database is accessed.  A record in a typical database with 1
million records can be retrieve in 3 disk seeks, no matter where in
the database its located. 

MUMPS is interpreted, and lends itself to rapid prototyping, typically
shortening development time considerably when compared to compiled
languages which have to go through the edit-compile-link-run cycle of
debugging. 

The fact that MUMPS is interpreted also means the language allows the
run-time behavior of code to be easily modified. The Xecute command
and Indirection operator, for example, provide unparalleled
flexibility to the MUMPS programmer.  Most modern implementations now
pre-compile code (stripping out comments, optimizing arithmetic
operations, etc.), to improve efficiency. 

MUMPS allows any command or function to be entered by typing the first
letter of the command or function.  This feature (a real plus if
you're writing a long program) has given MUMPS the undeserved
reputation of being cryptic and unstructured.  Nothing could be
farther from the truth.  MUMPS encourages the programmer to build
discrete modules of code, and to call them at runtime with the DO
command.  (Of course, it's possible to write unreadable, unstructured
code, but that isn't unique to MUMPS). 

The syntax of MUMPS is very simple and straightforward and is
established by the MUMPS Development Committee (MDC) which is the ANSI
committee responsible for codifying the MUMPS standard. Vendors can
extend the language, by adding "Z" commands and functions. 

There is also a rich set of operators string manipulation, arithmetic
and logical operations, and pattern matching. 

Some new additions to the language have recently been added by the
MDC. These include parameter passing, variable stacking (with the NEW
command), and some new functions ($TRANSLATE, $FNUMBER, $GET, $QUERY).

MUMPS isn't the language for all applications (what language is?), but
for interactive, database or string-processing applications its
without peer. 

There are several implementations available for the VAX, I happen to
be affiliated with the group which produces VAX DSM (Digital Standard
Mumps), the DEC implementation. 

Other vendors, and more information, can be located through the Mumps
Users Group (MUG), 4321 Hartwick Road, College Park, MD.  20740  (301)
779-6555. 

                                           Bob Craig
                                           DSM Technical Programs Group
                                           Digital Equip. Corp.
                                           Marlboro, Ma.

DEC E-NET ->  OZONE::CRAIG
UUCP      ->  {your favorite path}!decwrl!dec-rhea!dec-ozone!craig
ARPA      ->  craig%ozone.DEC@decwrl.ARPA

McGuire_Ed@GRINNELL.MAILNET.UUCP (01/25/87)

In response to your request for pointers to Mumps systems, here are
descriptions of two commercial Mumps systems for VMS, summarized from my VAX
Software Source Book, Third Edition (January 1986):

-------------------------------------------------------------------------------
Digital Equipment Corporation
Contact: Local sales office

  DSM for MicroVMS, VMS.  Database management system including DIGITAL
  Standard MUMPS (DSM).  Superset of ANS MUMPS specification X11.1-1984.
  Shareable, reentrant interpreter.  SPD #25.08.xx.  Price: $9000-$13,500.
-------------------------------------------------------------------------------
Intersystems Corp., 210 Commercial Street, Boston, MA  02109
Contact: David Rozewski, (617)227-1555

  MUMPS programming language, data base system, and utilities.  Claims more
  than twice the performance of other implementations.  ANSI standard
  X11.1-1977, with all 1983 enhancements.  Handles ASCII and EBCDIC tape
  formats.  Supports networking to VAX and PDP-11 MUMPS systems.  Price:
  $3900-$49,900.
-------------------------------------------------------------------------------

I also came across an amusing entry I must share:

-------------------------------------------------------------------------------
Computer Systems Design, 3627 Padua Avenue, Claremont, CA  91711
Contact: Dr. Thomas S. Radi, (714)625-6147

  GDADL (Greatest Damn Ada-Based Design Language) for MicroVMS, ULTRIX-32,
  VMS.  Program Design Language based on Ada.  Price: $3000-$7500.
-------------------------------------------------------------------------------

Disclaimer: We don't use them, we don't sell them.