ISO Prolog works
Since 1995-06-01 the programming language Prolog has an ISO/IEC
standard: 13211. Work is active since then and has regained momentum
recently. If you are using Prolog or one of the hosted systems like
CLP(FD) or CHR consider to join us
in WG17!
But prior to joining, get and read the relevant document. You obtain
it from your national member body for about USD 300. If you want to
read it for your information (but do not need it for legal purposes)
there is an extra rebate — only USD 30 as INCITS/ISO/IEC
13211-1-1995 (R2007) from the ANSI
webstore. Please note that in many countries, there is a
"nationalized" version of 13211-1 present. These versions differ by a
slightly modified coversheet which makes it clear that the document is
a national standard too.
Currently I am editing the following documents
for ISO/IEC JTC1 SC22
WG17
(Document
register,
2011-06-29,
2011-01-27ii,
2011-01-27,
2010-09-20).
Comments
welcome! If you have questions about the standard, don't hesitate to
ask! If you ask your questions publicly, also others will profit! Use
either
- DTC3: Some (sketchy) material for preparing the next
corrigendum.
- Please comment!
- Prolog prologue
- The aim of this task is to identify and codify
predicates for a prologue for Prolog. Current
steps: length/2.
- DCGs
-
- A simple reference implementation
- Documents in Lexington
- Comments on DCGs
draft 2010-07-18
- Comments, July 2010.
- Comments on DCGs draft
2010-04-01
- Comments, June 2010.
- Conformity assessment I:
Syntax.
- Current differences between implementations. Please contribute!
- Draft Technical Corrigendum 2
(DTC2)
- Incorporates N226, N225, N224 and partially N220 which
all were partially based on N208.
Submitted as ISO/IEC JTC1/SC 22 N4587 for DCOR ballot.
Approved.
Summary of voting N4603.
Revised DCOR text submitted to ITTF for publication N4626.
Published 2012-02-15 as ISO/IEC 13211-1:1995/Cor 2:2012.
Documents which where incorporated into DTC2:
- A comparison of implementations of
number_chars/2
- This was the basis for fixing the error
conditions.
- Noname operators
- Discussion paper,
June 2010. Integrated into DTC2.
- N226 An error class for unexpected
instantiations
- Action item in Pasadena. Delivered 2009-10-29
as N213, 2010-07-26 as N226,
2010-09-07 integrated
into DTC2.
- N225 Built-in predicates, current
practice
- Discussion paper, October 2009 - July 2010
- N224 Evaluable functors, current
practice
- Discussion paper, October 2009 - July 2010
- N220 Three steps to syntax
harmony
- Discussion paper, June 2010. Partially integrated
into DTC2.
- Syntax extension for |
- Discussion
paper, December 2009. This was the first step before N220.
- Comments on
DTC1
- Comments mostly on the unresolved issues of DTC1 with
considerations for their inclusion into DTC2.
- post-N215 setup_call_cleanup/3
- Action
item
in Udine,
2008. Prepared
for Pasadena,
2009 as N211. Further refinements due to
Pasadena resolutions and user feedback. Delivered 2009-10-29 as
N215. As of SE 7, 2011-07-28, Java
has try-with-resources
which suppresses exceptions in the same way as setup_call_cleanup/3.
- Drafts at WG17
site
Documents by others related to Prolog standardization:
- ISO/IEC 10967 Language independent arithmetic (vl. LIA).
- The working group for this standard is
WG11, documents.
LIA consists of 3 parts:
- LIA-1 Integer and floating point arithmetic.
- The first edition
of 1994-12-15
is now considered outdated. Already LIA-2 and LIA-3 are no longer
based on it. The most recent public draft
is N514.
As of 2011-01-07, there is an FCD under ballot (N 4593). Please note
that the Prolog standard incorporates arithmetics according to a
draft prior to 10967-1:1994. In the meantime, LIA-1 changed at least
twice which makes following LIA-1 very difficult.
Normative references to LIA-1:
| 1st CD N92 | 1992-03 | | Language compatible arithmetic | 1st CD | 1991-03 |
| 2nd CD N110 | 1993-03 | | Language independent arithmetic - Part 1 | 2nd CD | 1992-08 |
| DIS N128 | 1994-03 | | Language independent arithmetic - Part 1 | DIS | 1993-09 |
| IS 13211-1 | 1995-06-01 | | Language independent arithmetic - Part 1 | IS 10967-1 | 1994-12-15 |
- LIA-2 Elementary numerical functions.
- 2001-08-15
- LIA-3 Complex integer and floating point arithmetic and complex
elementary numerical functions.
- 2006-05-01
- ISO/IEC 11404:2007, General purpose datatypes.
- 2007
- Multi-Octet Character Set Handling
- As a general remark note that in ISO/IEC 13211-1 there is a clean
separation between characters and bytes. E.g., there is character I/O
(8.12) and byte I/O (8.13). The processor character set PCS is
implementation defined (6.5). This means, that conforming
implementations may use ASCII,
JIS,
EBCDIC,
ISO 8859-1,
ISO 8859-5,
Unicode,
TRON,
UTF-2000,
GCS,
GBK,
GB 2312,
GB 18030,
or whatever other character set, provided
- this character set fulfills the requirements of 6.5 and 6.6, and
- the documentation accompanying the processor defines how the
extended characters are mapped to Prolog syntax (6).
Some difficulties with understanding the problems related to
Unicode are due to
the
so called Han unification.
An account
from the perspective of the TRON project.
How
many Unicode characters are there?
Possible character classification schemes to consider:
- Modules
- There is a module standard: ISO/IEC 13211-2:2000.
Current contributions:
ECLiPSe
ModuleSystem. Previous versions: 2012-03-29
- ISO Prolog
standard and standards compliance of Prolog implementations
- Improving
the ISO Prolog standard by analyzing compliance test results by
Péter Szabó and Péter Szeredi. Some suggestions are part of TC1 and DTC2. Still some things
to do for DTC3.
- Is
the ISO Prolog standard taken seriously? by Roberto Bagnara.
[local copy]
- An up-to-the-point polemic
originally posted
1999-01-02. Still relevant.
- Prolog
compilers are too permissive by Paulo Moura.
- An
Elementary Prolog Library by Richard O'Keefe.
- Previous drafts:
10,
9,
8,
7B,
7A,
7A,
6,
5,
4,
3.
Nota bene: There are two versions of draft 7A.
Recent additions:
- 6.0 Syntax. (Numbers) (2010-11-19)
- 3. Sorting (Lists) (2011-12-08,-12)
- Notes on the
ISO-Prolog Standard by Joachim Schimpf
- Previous
drafts: 2011-04-24, 2011-04-12, 2010-09-27.
- Core
update float
- Previous drafts:
2010-06-06,
2009-10-14.
- Specs by Joachim
Schimpf.
- 1984 Draft Proposed Standard for Prolog Evaluable Predicates
By Richard O'Keefe
-
Version by ok@goanna.cs.rmit.oz.au.
source
first announcement 1984-07-25.
ECRC-Version (source).
- CHR
- Recently, there seems to be an interest in standardizing CHR.
Other standard related activity
- Prolog portability quest. My attempt to vulgarize
the ISO standard.