Logical description of the MUMPS language
Page 1 of 1

Author:  whitten [ Tue Nov 23, 2010 10:39 am ]
Post subject:  Logical description of the MUMPS language

It would be of great value if we have a logical description of the MUMPS programming language, which we could use to guide the tests in the validation suite.

The idea is that we express the denotations of the various syntactic forms and semantic run time in a way that we could verify that an implementation is maintaining the "implicit contract" that exists between a programmer writing in the language and the implementor providing an implementation.

This would include, but not be limited to: pre-conditions, invariants and post-conditions such as were first introduced by Bertrand Meyer, the creator of Eiffel. The difference is that in application programming, that these are a part of a particular application program.

The logical description of the MUMPS language might be included as part of the MDC reference implementation of MUMPS (since that is basically a very specialized application program), but when used with the Validation Suite, it would be part of the tools used by the Validation Suite maintainer or creator to write the test programs.

For example, the "IF" command has an "ifargument" which is an expression that changes the $TEST special variable. The logical description of $TEST must include that it is either a "0" or a "1", and the logical description of the IF command would include the fact that $TEST can be changed. It would also need to express the fact that the next command on the current line is executed when $TEST is 1 and that the first command on the next line is executed when $TEST is 0.

Author:  toad [ Thu Dec 09, 2010 2:02 pm ]
Post subject:  Re: Logical description of the MUMPS language

You'll get no arguments from me on this. Bertrand Meyer's work helped turn interfaces into contracts, a crucial step toward consolidating the third-generation revolution that also helped set the stage for the fourth, for which we're still waiting, alas. Go, Cyc, go!

We're exploring whether to create an alternative text for the MUMPS standard, so that if we decide not to go the ANSI/ISO route (still an open question) we can start with text for which we hold the copyright (ANSI and/or ISO hold the copyright to the current standard). We might base it on the 1985 MUMPS Programmers' Reference Manual, or we might write a new one from scratch. Either way, we may want to include some textual variation on the use of preconditions, postconditions, and invariants as part of the specification.

Author:  gwoodhouse [ Thu Feb 06, 2014 11:52 am ]
Post subject:  Re: Logical description of the MUMPS language

I've been thinking about this, too. One problem with the current standard is that lexical structure, syntax and semantics are all mixed up in the document and not clearly distinguished. Of course, in large measure, this is a result of the highly dynamic nature of the language. That being said, the various sections on the execution model do lend themselves to an operational, and perhaps denotational, description of MUMPS semantics.

Author:  raynewman [ Thu Feb 06, 2014 5:14 pm ]
Post subject:  Re: Logical description of the MUMPS language

A few years ago (2008 to be precise), I commenced writing a MUMPS compiler in MUMPS for my Masters of Info Tech. I didn't finish it as I am a tad lazy.
Attached is the 'description' of MUMPS I was using.


FinalReport.pdf [351.68 KiB]
Downloaded 1641 times

Author:  toad [ Fri Feb 07, 2014 10:41 am ]
Post subject:  Re: Logical description of the MUMPS language

This is very interesting reading. Thanks, Ray.

Author:  toad [ Fri Feb 07, 2014 10:44 am ]
Post subject:  Re: Logical description of the MUMPS language

Greg, now that MUMPS standardization is back in business, it is an excellent time to consider superior ways to specify the system. MUMPS 2015 may be a conservative update of the standard, but the next MUMPS standard could make much bigger changes - especially if the system itself changes little but the way of specifying it improves dramatically.

Can you suggest some examples of specifications we would do well to model the subsequent MUMPS specification upon?

Page 1 of 1 All times are UTC - 8 hours [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group