Skip to content

ISO Standards update

Vector 1:2, page 125

standards

Transcribed from the printed issue; not yet reviewed. Read it in the PDF of the issue, page 125

The ISO meetings for the development of the APL standard have a strange habit of cropping up in proximity with the annual APL conferences. It should be no surprise then, to learn that the last such meeting was held in Helsinki, Finland, just prior to this year’s international APL conference.

The four day meeting was attended by fifteen delegates from eight countries; Belgium, Canada, Finland, France, Germany, Sweden, UK and USA. It represented the culmination of work carried out by people of these and other countries in studying the first Draft Proposal of the ISO APL Standard (DP1). The fruits of this work consisted of over 190 comments submitted by 10 countries, including comments from Australia, Hungary, Japan and the Netherlands. The objective of the technical work of the meeting was to process and resolve these comments with a view to producing the 2nd Draft Proposal. Each comment was either accepted, accepted with modification or rejected, and in the last two cases a reason for the modification or rejection provided. Some comments uncovered problems in the standard, but failed to address their solutions adequately, in which case the response was an acceptance with modification. Comments proposing solutions that were not adopted (by vote or consensus) were flagged or rejected. Generally, most decisions were made by consensus, with voting for the less clear cut and more important questions.

Comments can be split into two categories; the typographical/editorial type, which are presumably non-contentious, and the substantive comments. The latter group divides into comments which don’t intend to change the meaning of the standard, and those that do. It’s this last group which is the more interesting one, especially when the comment is accepted and a substantive change is made to the standard. At this point in the life of the document, we wouldn’t expect to see many such substantive changes being made, and this was the case at Helsinki. There were, however, a few such modifications, as we shall now see.

As explained in the last issue VECTOR, DP1 required that the catenation of two empty vectors should produce an empty result of type determined by the type of the left argument. For example, where C is an empty character vector, and N an empty numeric vector, the expression C,N would yield an empty character vector, according to DP1. This has now been changed. The original comment that sparked off the discussion at Helsink pointed out that most APL interpreters in fact produced the right argument as the result, rather than the left, and that therefore the standard was not documenting existing practice in this area. A motion to change the definition in DP1 was made and narrowly passed, and the nature of the change was discussed. It was proposed that the way out of the problem would be to have the standard report a DOMAIN ERROR for this case. A vote was taken and the proposal resoundingly accepted. What this means in practice is not that an implementor must report a DOMAIN ERROR in this case, but that either type of result may be produced for the implementation to conform to the standard. In this way, the consistent-extension mechanism (of replacing error reports by other behaviour) allows an interpreter to return either result. The disadvantages of this approach are twofold. First, it may encourage implementors to report an error in such a case. Second, the change reduces the set of programs (rather than interpreters) that conform to the standard. That is to say, any program that employs catenation of empty vectors of different types will NOT conform to the standard.

Another example is a change made to the definition of ‘erasable’. This is an operation used in the formal model that describes the standard interpreter. In DP1 the description of ‘erasable’ was such that any pendant functions on the SI stack could not be successfully expunged: in other words, the result of applying quad-EX to the name of such a function was always zero. In DP2 the definition will be rewritten to permit an implementor either to allow or disallow a pendant function to be expunged.

The status of the workspace interchange convention (WIC) was also finally decided at Helsinki. This is a convention intended to facilitate the exchange of APL functions and variables between APL installations in a manner that is independent of specific APL implementations and operating systems. Provision is also made for installations to cooperate in defining local extensions to the convention so that the exchanges need not be limited to functions and variables.

Work on WIC has proceeded in parallel with the work on the APL language standard, and although WIC will not be a part of the standard, it will now be published as an annexe to it.

As you can see from these somewhat esoteric examples, the standardisation process is slowly drawing to a close — or at least the technical aspects of it are. There is still much ISO bureaucracy to get through! It is hoped that the ISO working group will not need to have another formal meeting and that we will have an international APL standard some time in 1985. How important the standard is, will of course, depend on you.