Article View: comp.lang.prolog
Article #169ISO Prolog draft standard available
From: Chris D S Moss
Date: Thu, 09 Apr 1992 15:22
Date: Thu, 09 Apr 1992 15:22
239 lines
10133 bytes
10133 bytes
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.
------------------
Technical Details
Message-ID:
<1992Apr9.152236.8792@doc.ic.ac.uk>Path:
arc1-ca.pugleaf.net!sparky!uunet!mcsun!uknet!warwick!mrccrc!icdoc!cdsmShow Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!sparky!uunet!mcsun!uknet!warwick!mrccrc!icdoc!cdsm From: cdsm@doc.ic.ac.uk (Chris D S Moss) Newsgroups: comp.lang.prolog Subject: ISO Prolog draft standard available Message-ID: <1992Apr9.152236.8792@doc.ic.ac.uk> Date: 9 Apr 92 15:22:36 GMT Sender: usenet@doc.ic.ac.uk Organization: Department of Computing, Imperial College, University of London, UK. Lines: 239 Nntp-Posting-Host: swan.doc.ic.ac.uk