Path: utzoo!utgpu!news-server.csri.toronto.edu!mailrus!cs.utexas.edu!samsung!munnari.oz.au!goanna!ok From: ok@goanna.cs.rmit.oz.au (Richard A. O'Keefe) Newsgroups: comp.lang.prolog Subject: Re: Prolog standard Message-ID: <3340@goanna.cs.rmit.oz.au> Date: 29 Jun 90 11:48:47 GMT References: <15581@dime.cs.umass.edu> <3314@goanna.cs.rmit.oz.au> <1391@quintus.UUCP> Organization: Comp Sci, RMIT, Melbourne, Australia Lines: 81 In article <1391@quintus.UUCP>, dave@quintus.UUCP (David Bowen) writes: > In article <3330@goanna.cs.rmit.oz.au> Richard A. O'Keefe writes: > >I have in the past volunteered in this newsgroup to manage an Australian > >mail server for standards documents if given machine-readable copies > >that could be made available that way. > I don't see why documents couldn't be posted directly on this news group. They would *still* have to be archived somewhere. What about someone who joins the net a month after something has been posted? If he's unlucky, he never hears about it until it's much too late. If *we're* unlucky, we get lots of messages "I missed X, can it be reposted" and someone is _sure_ to oblige... Having one site each in the US, Australia, Europe, and Japan where people could FTP the latest drafts of things (or get them via a mail- server) would cut down international net use quite a bit. The real problem is a legal one. Drafts of the C standard were *not* made available for legal reasons. I don't know what the ISO rules are. Working documents _other_ than drafts of a standard are presumably not a problem, the copyright would remain with the authors and they could be asked to agree to eletronic distribution as well as paper distribution. But presumably the copyright of drafts of the standard belongs to ISO. Drafts of the standard need to be subjected to two kinds of criticisms. 1) They need to be scrutinised very carefully for technical errors. 2) People who are trying to _use_ Prolog need to check whether the standard meets their needs. Currently, there is a de facto standard (C Prolog minus a few bits). At the moment I have access to 6 Prolog systems which are pretty close to that. (I also have C Prolog itself on a tape somewhere, and expect to pick up another portable Edinburgh-compatible Prolog fairly soon.) I also have manuals for IBM Prolog, ZYX Prolog, and Quintus Prolog, and keep meaning to ask for an Arity manual. The one thing which is in the current draft of the standard (given that strings have been dropped) but not in these Prologs is exception handling, and in fact most of them have it. The degree of similarity between these systems (except IBM Prolog) is *already* about as close as we could hope for from the current standard. And it just isn't good enough. Let me give you one specific example. What one writes as :- dynamic p/1, q/2. in SICStus Prolog has to be written as ?- dynamic([ p/1, q/2 ]). in NU Prolog, and some of the other systems I have access to are deeply unhappy with _either_ form. Some systems like ALS Prolog don't strictly speaking _need_ :- dynamic declarations, but it is a pain that they don't accept and _ignore_ them. The standard ought to require that every conforming Prolog implementation MUST accept some kind of declaration (I would even settle for ?- declare(dynamic, [ p/1, q/2 ]). as long as _everything_ accepted it) and that it MUST be legal to change a predicate thus declared, but in order to accomodate ALS Prolog all it has to do is _not_ say that that predicates _not_ declared :- dynamic _can't_ be changed. As it is, I have to load a DYNAMIC.PRO file first thing, and keep forgetting it. If you sit and stare at the text, this kind of thing isn't obvious. If you are actively trying to write code that will portable between several dialects, this kind of thing hits you in the eye right away, and you look to the text to see how it helps, and find that it doesn't. It was always important to ensure that people *using* Prolog would see whether the standard met their needs. A minimal standard doesn't. The bottleneck is not the technical difficulty of getting a workable standard done in time, but delegates' willingness to study the needs of Prolog _users_. -- "private morality" is an oxymoron, like "peaceful war".