From: cdsm@doc.ic.ac.uk (Chris D S Moss)
Newsgroups: comp.lang.prolog
Subject: ISO Prolog draft standard available
Date: 9 Apr 92 15:22:36 GMT
Organization: Department of Computing, Imperial College, University of London, UK.

The draft of the ISO standard for Prolog was formally submitted at the
end of March, 1992. Comments must be filed through national
standardization committees in May or June to be considered by the next
ISO working group WG17 in November 1992.

Copies of the draft, which runs to 134 pages, are being posted this week
to members of WG17, but to make it more widely available, electronic
copies have been deposited with the UKUUG Software Distribution Service
at Imperial College, London. The editor's preface is printed below,
without comment.

At 840K for the TeX version and 2MB for the Postscript, it is far too
long to be published via the News. But if you are interested in the
standard and have several times that disk space available, together with
EITHER LaTeX or a Postscript laser printer, you are encouraged to
download it for yourself. Instructions follow the editor's preface.


       ISO/IEC JTC1 SC22 WG17 N92 - Editor's foreword
       ==============================================


Draft Prolog standard -- Editor's foreword

Introduction
------------

The standard for Prolog will appear in two parts. This is a draft for
part 1 and covers the core aspects of the language. Part 2 will contain
a definition of modules.

Several expert members of WG17 have contributed significantly to this
draft. In alphabetical order, they are:
   David Bowen (Quintus Corporation) -- Input/output
      (Clauses 7.9, 8.11-8.14), Errors (Annex B),
   Mats Carlsson (SICS) -- Syntax (6),
   Klaus Daessler (Siemens) --
      Terminology (3), Informal semantics (7.7),
   Pierre Deransart (INRIA), AbdelAli Ed-Dbali (Universite d'Orleans) --
      Formal semantics (Annex A),
   Tony Dodd (Expert Systems Ltd) --
      bagof/3 and setof/3 (8.10.2, 8.10.3)

This foreword is not part of the draft International Standard.

   Roger Scowen, ISO/IEC JTC1 SC22 WG17 (Prolog) convener,
     DITC/93
     National Physical Laboratory
     TEDDINGTON, Middlesex TW11 0LW
     UNITED KINGDOM
   28th March 1992

A brief rationale
-----------------

This draft International Standard for Prolog is based on "Edinburgh" 
Prolog -- a de facto standard. Like many such standards, its definition 
is incomplete and implementations differ in many surprising ways. Thus 
for many Prolog programmers a standard will tell them not just what they 
already know, but also provide answers to questions they have not yet 
asked.

Many implementors seek to provide in a predicate the ability to perform
all possible tasks concerned with that functionality in a single call.
For a programmer, this generality may be convenient. But for a
standardizer it is a nightmare trying to define the precise effect of
erroneous cases. This draft International Standard therefore normally
aims to provide any particular functionality in the simplest possible
way, but with sufficient power to provide portability to those who need
it.

WG17 is aware that every time an International Standard defines a
feature as implementation dependent, the standardizers have failed to
provide portable functionality, and they will rightly be cursed by the
unfortunate programmer. The number of such features has therefore been
minimized.


Features of draft standard Prolog
---------------------------------

Good and bad features

Excellence:

Many parts of the draft are both close to existing practice and
implementable efficiently.
For example:
   Syntax (6) -- is close to traditional
      Edinburgh Prolog  syntax,
      no longer relies on ASCII (a national standard),
      specifies which terms  are equivalent,
      identifies ambiguous cases and defines their meaning.
   Unification (7.3, 8.2) --  resolves the problem of the
      occurs-check. This is not normally implemented, but the failure
      to do so leaves Prolog with an unclear, ambiguous semantics where
      steadfast libraries are impossible (see the example 7.3.4.1).
   Arithmetic (8.6, 8.7, 10.1) -- is based on a language-independent
      arithmetic standard designed by experts, can be implemented
      efficiently on almost any computer processor, and is
      accurate so that programmers know their answers can be trusted.

Satisfactory features

Other features are uncontroversial and apparently satisfactory,
for example:
   type-testing (7.1, 8.3), term comparison
      (7.2, 8.4 -- but an ordering of variables cannot be consistent),
      clause retrieval (8.8), clause creation (8.9),
    more complicated evaluable functors (10.2-10.4).

A few features are novel, but are currently accepted and stable, for
example:
   atom processing (8.16),
   flags (8.17),
   converting characters read as data (9.2.1).

Questions

The status of two features may be changed:
   Errors (7.11) --
      WG17 have agreed to change the form of error term which
      is given to throw/1 after an error has been detected.
      The new proposal arrived too late to be incorporated into the
      body of this draft and is printed as annex B of the draft.
   Formal semantics (Annex A) --
      WG17 finds it difficult to agree on the status of this definition:
      whether it should be an informative or normative annex. A
      resolution at WG17's last meeting, "WG17 resolves the formal
      semantics of N88, when revised, shall be an informative Annex of
      Part 1 of Standard Prolog", had an inconclusive outcome. The
voting was:
         Individuals: For 6. Against 3. Abstain 4.
         Countries: For 4. Against 2. Abstain 3.
      Some say, "The formal semantics is based on simple sound logical
      theories, and we can be confident of its correctness and
      completeness because an executable semantics has been developed
      mechanically from it." Others say, "It is unnecessary, and too
      difficult and complicated".

Member bodies are asked to comment on these two issues.




           Instructions for downloading the text
           =====================================

The files are stored in the subdirectory languages/prolog-std of the
UKUUG Software Distribution Service Archive which has the X.400 name
src.doc.ic.ac.uk, IP address 146.169.3.7, and X.25 connection number
from the Janet network of 00000510200001.

The Tex sources are all those files with extension .tex or .sty.
The list with sizes is as follows

  lines  chars  file      contents

    92    2483  d7.tex    (macros and driver to print the definition)
    86    1603  d700.tex  (environment and macros)
 12861  111074  d710.tex  (1-6 References, definitions and syntax)
 17700  148506  d711.tex  (7 Semantics)
  6463   67048  d712.tex  (8.1-8.10 Built-in predicates 1)
  6118   64272  d713.tex  (8.11-8.14 I/O Predicates)
  2939   30622  d714.tex  (8.15-9.2 Logic and control)
  5575   48718  d715.tex  (10 Evaluable functors)
 23891  238828  d716.tex  (Annex A Formal Semantics)
  8839   82443  d718.tex  (Annex B Alternative error handling system)
   869    6838  d776.tex  (Editor's foreward)
  4194   42377  iso.sty   (LaTeX style sheet - ISO form of article.doc)
  1858   18475  iso9.sty  (LaTeX style sheet - ISO form of art10.doc)


The Postscript files, with sizes, are those with extension .ps, as
follows:

 2026428  draft.ps  (result of processing all the above, except..)
   19862  d776.ps   (Editor's foreward)

    1270  r063tt

Means of access
---------------

1. Electronic mail. There is a server running on the archive which will
respond to appropriately worded forms

Send the following email message to info-server@doc.ic.ac.uk

Request: sources
topic: languages/prolog-std/*.tex
topic: languages/prolog-std/*.sty
Request: end

Note that this method only applies to the TeX sources as there is an
upper limit of 1MB on email messages. To reduce the load from 843KB to
522KB, you may wish to omit the annexes and foreward. The following
message would do that:

Request: sources
topic: languages/prolog-std/{d7,d700,d710,d711,d712,d713,d714,d715}.tex
topic: languages/prolog-std/*.sty
Request: end

If your mailer has a line limit you may prefix a line of the form:
line-limit: 10000

For general queries send an email message to ukuug-software@doc.ic.ac.uk

2. Anonymous ftp. Login using the number src.doc.ic.ac.uk, IP address
146.169.3.7, name anon and password your email address.

3. Anonymous FTAM. The archive runs the ISODE package which can be
reached via the Janet address 0000051020000, Internet on IP address
146.169.3.7 and over IXI on address 204334504108. Use the username of
anon and set the remote filestore to  be unix.

4. Guest NIFTP. Access via Janet, host name uk.ac.ic.doc.src, name
guest, password your email address (containing @).

5. Magnetic Tape.  These are sent in tar format on 1600bpi half inch,
6250 half inch, QIC24 or QIC150 formats. The handling cost is 50 pounds
sterling per tape with a surcharge of 30% to non-UKUUG/EurOpen members.
For the appropriate application form please send an email request to
ukuug-software@doc.ic.ac.uk.

6. Outside normal working hours (8.30 to  17.30  GMT)  a  guest
login  account  is  available  for  those who simply wish to
wander around the archive.  It is accessible over the  Janet
X.25 network with an address of: uk.ac.ic.doc.src (or 00000510200001 if
you have no NRS).

CAUTION: in the interests of getting this message out rapidly I have been
unable to check the above instructions. If there are errors I will
repost this message. Please let me know if you have any problems.
                    Chris Moss.


------------------
Xref: sparky comp.lang.prolog:973 comp.lang.functional:492