Volume Volume 3, number 1, February 1995, pages 36-37

Windills
Stone Disks turning into Windmills,
What's going on with the MDC?

by Ed J.P.M. de Moel

It is now several years ago that Thomas Salander started a column in this magazine called Stone Disks. Since then, a lot has happened, the magazine got a new name, the column started to appear less regularly, and now the MDC even has a new Chair.

As the new Chair of the MDC, I would like to pick up the tradition that Thomas started, and write a column about the work of the MDC for this magazine. Just to show my heritage (I'm from The Netherlands), I'll change the title of the column into Windmills. Before steam or oil powered engines were invented, windmills were used to power machines for all kinds of industrial activities. As such, I hope this title will signify that MDC keeps M[UMPS] in motion.

For those of you who don't know me: in 1976 I was a student majoring in physics and computer science at the University of Amsterdam, The Netherlands, and had a part-time job at the Department of Medical Informatics at 'the other' university in the same city. It was at that department that I got exposed to this new language, and it didn't last long before I started to become interested in the formalities of defining a computer language. In 1980 I attended my first meeting of MDCC-E (MUMPS Development Co-ordinating Committee of Europe). I stayed with the Medical Informatics department for almost 11 years, developing software to support all kinds of medical research, supporting classes in programming and the use of programming tools in Pascal, FORTRAN and MUMPS. During this period, I also wrote a couple of text-processors. One in assembly that ran on the university mainframe computer, one in MUMPS that ran on a PDP-11, and was a lot easier to maintain. There was a third one, written in FORTRAN, that didn't process familiar text, but Middle-Egyptian hieroglyphs ().

In 1987, I left the medical world for a couple of years to work at the Department of Physics in Utrecht (The Netherlands) to work there as a system-manager and graphics specialist. Since 1990, I have been working in San Diego (with SAIC) on the CHCS project. On this project, I was the main architect of the Archive sub-system, and currently I am working on the tools for performance monitoring.

But, back to the MDC. I attended my first MDC meeting in 1986, and haven't missed a single one since then. There have been meetings at which I noticed that more than half of the text in the mailings for those meetings were (co)authored by me. I have chaired many task-groups in MDC, and I have been the secretary of one of the subcommittees for quite some time. Over the last years, several articles by me were published in this magazine. Last January, I was elected Vice-Chair, and last November, I became Chair.

Let me just say that I feel very much honored to be the first "foreigner" to Chair the MDC. From my participation in the MDC, I have known for years that internationalization is daily practice in this committee and that MDC is committed to involve people from all around the world in their work, but now this has become explicit for everyone to see.

But, back to the MDC. A lot has happened over the last year. Five (!) draft standards were submitted for canvass, and many new proposals reached MDC Type A status.

As to the canvass, two draft standards passed without objections (GKS Binding and X-Window System Binding). There were 5 objections in all to the remaining three draft standards (M[UMPS] Language Specification, Open M[UMPS] Interconnect and M[UMPS] Windowing Application Programmer's Interface).

The MDC is currently in the process of addressing these objections. If these objections can be resolved, the whole slew of new standards can be published. If not, a re-canvass for the remaining three documents may be necessary. Depending on the deadlines for material to be included in this magazine, the actual objections to the canvass, draft responses and further pertinent information will appear in this or one of the two following issues of M-Computing.

While I'm on the subject, I would like to mention one of the most frustrating aspects of working on any standard: the time it takes to see a proposal become reality. The goals of any standards organization are many-fold, but include at least:

Unfortunately, these goals are at odds with one another: while one group of people is wordsmithing a piece of text to make it perfect and un-ambiguous, another group introduces a new 'great idea' that renders the work of the first group worthless. If a standards body would attempt to produce a document that contains 'all conceivable great ideas', they can never produce anything: there is always another 'great idea'. As a result, a standards body has to work with deadlines. Work that is ready by the deadline can go into the 'current' submission of a standard; new 'great ideas' will have to wait for the next iteration. Very practical, but also very frustrating for those of us who are anxious to see their 'great idea' incorporated in a standard.

I mention this frustrating aspect of producing standards, because two of the objections fall in this category: these objectors feel that something is important enough for them that they do not wish to wait for the next standard (that would most probably not be before 2001). One of these ideas is completely new, and the other is currently at "Type B" level. If we postpone action on the documents that are currently "in canvass" until work on these ideas is complete, it may be one or two years before a new canvass can be conducted. Of course, by that print-date, there will be new material that is important enough that other people will not want to wait for its inclusion...

While it may be frustrating to see that it takes so long before certain issues are perfected to the point that they actually appear in a standard, in the M[UMPS] world, we are very fortunate to see that most implementors do implement extensions to the language shortly after they reach "MDC Type A" level. This is why the MDC does not feel that the industry is harmed by postponing the inclusion of an extension to the next iteration of a standard.

But, enough about the canvass of the current draft standard, let's have a look at the latest and greatest.

Multiple patatoms within alternation

Have you ever used the pattern match operator for anything more complex than IF X?.E1C.E to see if a string contains a control character? Well, it will be possible to check

IF X?1.3N.4(3A,2N,1A1P1N)...

If the value of X starts with between 1 and 3 digits, followed by up to four occurrences of either 3 alphabetics or 2 digits or 1 alphabetic, 1 punctuation and 1 digit), followed by...

The sequence within the parentheses is a list of possibilities. When one of the possibilities occurs, the pattern is matched.

Portable string length

This has been a very contentious proposal within the MDC. At every stage, there were two major objections: one group of people felt that the new number of characters was too low, while another group of people felt that the new number of characters was too high. The proposal has been modified to be all sorts of numbers (4096, 2040, 1000, and many more). The new value that was accepted for a portable string length is 512. The portable length for subscripts, however, was not changed.

Portable, in this context, means for a programmer that one can count on a program to run without any problems, as long as this limit is not exceeded.

For a builder of a M[UMPS] language processor, portable means that at least the number of this limit has to be supported.

Libraries

M[UMPS] comes with a large number of built-in (intrinsic) functions. No matter how large the number of provided functions is, there is always a desire to add more. The capability to include libraries to a M[UMPS] system will address this need. The proposals that became MDC Type A during the last meeting define the general concept of a library, and the administrative specifics of how to define what is in a library. At the very next meeting the MDC will already be voting on several groups of actual library functions to be included in the structure that is currently still empty.

Error code numbers

Ever since the introduction of standardized error trapping, new additions have been made to the list of standardized error codes on a regular basis. At the last meeting, the code for the error that occurs when the maximum string length is exceeded was defined. Elsewhere in this magazine will be the complete table of currently defined error codes.

Appeals Process

The activities of the MDC may have a large impact on individual organizations. Like any organization that may have such an impact, MDC has defined an appeals process. If ever you are in a situation where you feel there is a need to invoke such a procedure, please contact the MTA Secretariat for details.


Ed de Moel is past chairman of the MDC and works with Jacquard Systems Research. His experience includes developing software for research in medicine and physics. Over the past ten years, Ed's has mostly focused on the production of tools for data management and analysis, and tools for the support of day-to-day operation of medical systems. Ed can be reached by e-mail.