Path: utzoo!mnetor!tmsoft!torsqnt!jarvis.csri.toronto.edu!rutgers!usc!samsung!uunet!munnari.oz.au!mudla!ok From: ok@mudla.cs.mu.OZ.AU (Richard O'Keefe) Newsgroups: comp.lang.prolog Subject: Re: More fun with WG17 Message-ID: <2782@munnari.oz.au> Date: 22 Nov 89 11:20:54 GMT References: <2609@munnari.oz.au> <696@sce.carleton.ca> <2643@munnari.oz.au> <1371@gould.doc.ic.ac.uk> Sender: news@cs.mu.oz.au Lines: 85 In article <1371@gould.doc.ic.ac.uk>, cdsm@sappho.doc.ic.ac.uk (Chris Moss) writes: > This is silly. Are you claiming that Edinburgh was the only practical > Prolog system around? and later > So please don't make out I'm arguing for a position I don't hold. > Chris. Ditto. > I think this is a biased view. If one was to judge simply by the number > of sales, then probably in 1984 microProlog would have won hands down. As > you point out, Turbo would probably win now. Is either of these relevant? *YES*. micro-PROLOG: I contended in 1984 that the standard should not be unduly influenced by micro-PROLOG because there wasn't any variation in the micro-PROLOG market (there weren't half a dozen nearly-but-not-quite- compatibles as there were for Edinburgh Prolog, so micro-PROLOG didn't *need* a standard) and because micro-PROLOG was different enough from Edinburgh Prolog that it wasn't worth trying to hybridise. I had then, as I have now, no influence on the committee, and they went on for at least a year trying to define Edinburgh Prolog on top of micro-PROLOG data structures. I think it is relevant to note that Logic Programming Associates now offer LPA Mac Prolog for the Mac and LPA Prolog Professional for the PC, and both are described by LPA as "Edinburgh" systems, although LPA Prolog Professional continues to support micro-PROLOG syntax as well. I did claim in 1984 that dialects other than Edinburgh Prolog should influence the standard in the sense that it should be considered how a compatibility package or translator could be written, and wrote a DAI report (title "On Standardising Prolog") which considered Waterloo Prolog. I didn't do that for micro-PROLOG because there were people at Imperial far better equipped to do that than I was. Turbo Prolog: Borland bought a system which was known not to be Clocksin & Mellish compatible and pushed it hard. If the official standard looks like the de facto standard at the time of their purchase and leaves them in the cold, (a) they knew what they were doing and (b) they did the same with Pascal and it doesn't seem to have stopped them. On the other hand, I repeat that my position remains what it was in 1984: it would be advisable to consider other dialects and be sure that they can be converted _somehow_. I recently sent a 20+ page document to Roger Scowen concerning a particular aspect of streams, and I explicitly and carefully considered Turbo Prolog when producing that design. > Probably the only way in which Edinburgh was the clear winner then was in the > sales of Clocksin & Mellish's book, which is different in some ways > (e.g. operator definitions) from any widely used implementation. Well, not the only way. DEC-10 Prolog was significantly superior in design to micro-PROLOG. (Frank McCabe said in a talk at Edinburgh that he adopted the everything-is-a-list syntax for micro-PROLOG in order to simplify the garbage collector, which he had to write in Z80 assembly code on a machine with essentially no development support.) [Let it be stipulated that NU Prolog is now considerably superior to DEC-10 Prolog in semantics, though some of the syntactic changes are for the worse.] There was also the fact that a goodly chunk of the DEC-10 Prolog system was sanitised and made public (read, write, setof, top level, how to do DEC-10 compatible see/tell/&c if you had streams, other stuff) so that anyone who wanted to be DEC-10 compatible got a free start. (SICStus Prolog made use of this, and SB Prolog has some of it.) _That_ is an important feature which micro-PROLOG did not have. There was also the DEC-10 library (get it from Edinburgh, folks, costs next to nothing) which was made available by FTP in the States; for no other dialect was a similar amount of leverage to be obtained from free code. The claim about operators is bogus. Clocksin & Mellish were quite careful about what they said. The description they give of operators in general is fine. There are three things: -- they don't say that you can have a list of atoms as the third argument of op/3 (you couldn't in PDP-11 Prolog) but they don't say you _can't_ -- they don't say that you can use a first argument of 0 to cancel an operator (you couldn't in PDP-11 Prolog) but they don't say you _can't_ -- they show operator numbers running from 1 to 255 (as in PDP-11 Prolog) but they said repeatedly that the range of numbers varied between systems, and only claimed that the relative order of the operators was conventional, and that order of operators _is_ still conventional. > By the time a consensus emerged most of the good people > had quit the committees. It shows.