🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.lang.prolog
Article #3320

Re: BSI Prolog terms of reference

#3320
From: Chris Moss
Date: Thu, 05 May 1988 14:02
98 lines
5585 bytes
In article <917@cresswell.quintus.UUCP> ok@quintus.UUCP (Richard A. O'Keefe) writes:
>My position is simply that if a group claim to be developing a standard
>for "Edinburgh Prolog" (rather than LM Prolog, microPROLOG, IC Prolog,
>LogLisp, PROLOG/KR, or any of several dozen related languages all with
>_some_ merit), then that is what they should DO.  

As I said in my note to Jeff Dalton, Edinburgh is not the only source
of inspiration to either the BSI or ISO group. It may have been at
the beginning but we have for sometime been committed to at least two
and maybe more syntaxes. If you disagree with that then say so.
Incidentally, the ISO document also references Clark & McCabe as well
as Clocksin and Mellish.

>I am shocked that Chris Moss can dismiss something that will break
>thousands of programs as a DETAIL.  (We can all agree that type testing
>predicates which fail quietly when given a variable are not good logic.
>But the BSI committee are supposed to be designing a standard for the
>language we already have, and I don't know of any "Edinburgh Prolog"
>dialect where integer(_) is an error.)

OK, here is the position on the type predicates (atom, integer etc)
as far as I can determine it. I can't quote chapter and verse on
everything.  The issue arose because the French (I believe  JF
Piques, possibly van Canegham and Roussel, but it was mediated
through AFNOR) objected to having type predicates that fail when a
variable is uninstantiated. It was decided to allow an error message
in this case AS A COMPILER OPTION. Subsequently this was changed to
being a switcheable option. The current version does not make it the
default (I'm not totally sure on this).

Now I doubt that that satisfies anyone. Obviously AFNOR would like 
coroutining in the standard, and I personally interpret their
position as a roundabout argument for this; ie. type predicates
should suspend if their arguments are uninstantiated. Failing is
WRONG and therefore they would like to be able to run on sequential
machines keeping the sense of the predicates. (I may be
misinterpreting their motives. Unfortunately I doubt if anyone in
France reads USENET. I'll post this to them for a response).

Incidentally, the test "integer" in Prolog II fails silently just as
one would expect, (I have just tried our copy) so I suspect the BSI
group misinterpreted the French request or my interpretation is wrong.

So nobody was forcing the error message response if a variable was
uninstantiated on anyone. At worst it was an OPTION. I can't
personally see why anyone should want to turn it on, and I've put
that position to Tony Dodd and Roger Scowen who have been concerned
with the drafting. It will come up again.

An IMPORTANT point that I think should be discussed is whether
coroutining should be in the standard and if so in what form.
Previously it had been rejected on two grounds: 1. There were several
incompatible implementations and nobody could decide between them. 
2. There were doubts about efficiency, particularly for compiled code.

Since that decision there have been at least two compilers (NU from
Melbourne and the ECRC product) which appear to have demonstrated
that the fears were groundless.

So there now appears to be a classic chicken-and-egg problem. Most
people do not use coroutining because their systems don't support it.
That is because many systems are totally optimised to sequential code
and may have only heard about C&M anyway.

If one had coroutining then several predicates might well behave
differently. Prolog II has predicates "bound" and "free" to deal with
this situation. The question is then "how does one ensure upward
compatibility?" and that's a thorny one.

>
>> >I am deeply offended that Chris Moss should suggest that I am arguing
>> >for my employers rather than for what is technically good.  

Please see my reply to Jeff Dalton, and accept my apologies for
having appeared to say something which I did not intend to say.

>I gave up sending comments to the BSI committee when I was told that
>100 pages of comments was far too much for them to distribute.

But please, it wasn't the FIRST 100 pages you had submitted; or even
the second. Those were distributed! (one even at the ISO meeting).


>One thing that bothers me about the BSI substandard is that there are a
>number of serious portability problems which have simply never been raised.
>If the committee were so much as to issue a document explaining one of these
>issues and saying why they haven't resolved it, that would materially
>increase their credibility in my eyes.  

I really don't think these sort of comments help. They are
tantalising, sure. But just having you say "I know something you
don't" doesn't help me. Am I supposed to try and outguess you?  Do I
get marked down when I don't respond? Maybe we have thought about
them. I don't know and am not going to go grubbing through Quintus
manuals to find out.


Chris Moss.
Technical Details
Message-ID: <280@gould.doc.ic.ac.uk>
Path: arc1-ca.pugleaf.net!utzoo!mnetor!uunet!mcvax!ukc!eagle!icdoc!ivax!cdsm
References: <831@cresswell.quintus.UUCP> <249@gould.doc.ic.ac.uk> <273@gould.doc.ic.ac.uk> <917@cresswell.quintus.UUCP>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!mnetor!uunet!mcvax!ukc!eagle!icdoc!ivax!cdsm
From: cdsm@ivax.doc.ic.ac.uk (Chris Moss)
Newsgroups: comp.lang.prolog
Subject: Re: BSI Prolog terms of reference
Message-ID: <280@gould.doc.ic.ac.uk>
Date: 5 May 88 14:02:02 GMT
References: <831@cresswell.quintus.UUCP> <249@gould.doc.ic.ac.uk> <273@gould.doc.ic.ac.uk> <917@cresswell.quintus.UUCP>
Sender: news@doc.ic.ac.uk
Reply-To: cdsm@doc.ic.ac.uk (Chris Moss)
Organization: Dept. of Computing, Imperial College, London, UK.
Lines: 98
Keywords: promises