[Info-vax] Meditech in the news

George Cornelius cornelius at eisner.decus.org
Wed Jan 12 15:27:33 EST 2022


Simon Clubley <clubley at remove_me.eisner.decus.org-earth.ufp> wrote:



> After a 5-minute read of the Mumps language syntax, I have come to
> the conclusion that it makes TECO look user-friendly. :-)
>
> The total of my Mumps knowledge has been acquired over the last few
> minutes and is based on the following:
>
> https://en.wikipedia.org/wiki/MUMPS#Summary_of_key_language_features
>
> I really don't like the dynamic nature of variables and the dynamic
> way they are created when first referenced. It makes Mumps look more
> like a scripting language than an application programming language.

It is a long-standing tradition that Mumps has no declarations.

Except maybe for the verb NEW as in NEW x,y,z - although you can
think of it as saving any preexisting values (or lack thereof)
on a stack for recovery upon exit from the current context.

I would consider Mumps to be something of a scripting language.  It
is precompiled in most implementations into something like p-code.
I also consider it a language for maintaining and navigating trees,
with tree nodes labelled by alphanumeric keys a.k.a. subscripts. The
rest looks like a language designed to be quite spare, written as
verb arg[,...] with a _single_ space as a separator when continuing
on a line with additional commands, and with all the important
verbs (SET, IF, ELSE, DO...) capable of being abbreviated with a
single letter.

With regard to tightly written code with few comments, I once heard
one of our vendors quoted as stating "if it was hard to write, it
_should_ be hard to read!"

We tried to adopt a standard.  So something like

 S X=12,A("Jones","Sam")=12 P U+3 D sub1 P "Done"

could be written (using the newer . indentation marker and the
so-called "naked DO"):

 SET X=12,A("Jones","Sam")=12
 PRINT U+3
 DO
 . <line 1 of subroutine>
 . <line 2 of subroutine>
 PRINT "Done"

where the initial spaces would actually be tabs that marked the
end of the label field and the beginning of the commands.

Oh, and Mumps stores its data on disk with the same tree structure
as in memory, again with names as subscripts.  Data in external
storage is prefixed with an up-caret, say ^A instead of A.

Its facility with keyed data arranged in trees, and its facility
with delimited data items, made it a rapid prototyping language.

And it had some interesting indirection capabilities.  You had
an XECUTE verb to execute command lines, say, generated on the fly,
but you also had @-sign indirection, which could refer to parts
of commands: arguments and subscript expressions.  So you might
have tables defining, say, laboratory tests, which included bits
of the code needed to do some of the calculations associated
with a given test.  Indirection is heavily used in VA Fileman,
as I recall.

And DSM (Digital Standard Mumps) had some nice features for
interfacing with VMS - think Mumps syntax implementation of
most of the DCL lexicals, for example.

George

>
> Simon.
>
> --
> Simon Clubley, clubley at remove_me.eisner.decus.org-Earth.UFP
> Walking destinations on a map are further away than they appear.




More information about the Info-vax mailing list