Defect report for ISO/IEC 13211-1:1995 DCOR 3



This document lists the defect reports for DCor3. It refers directly to C1 up to C19 of this document.
R1 Errors for existing options are inconsistent, extensions are only mentioned without errors.

Submitted by Ulrich Neumerkel

The domain error for stream-, close-, read- and write-options (7.10.2.11, 7.10.2.12, 7.10.3, 7.10.4) listed in 8.11.5.3 i, 8.11.6.3 e, 8.14.1.3 e, 8.14.2.3 e is satisfied also for cases where only an instantiation error (7.12.2 a) fits.

Solution: Add further conditions for the instantiation errors and modify mentioned error conditions for domain errors (C14). Add as note the general principles for handling errors in options (C9). Allow explicitly extensions to options and specify the error conditions (C1). Add examples (C16).


R2 Prolog text cannot end with layout text.

Submitted by Ulrich Neumerkel

Solution: Add optional layout text sequence in grammar (C2).


R3 Iterated-goal term not well defined for variables.

Submitted by Per Mildner

A variable as a goal always unifies with ^(_, Goal), and thus there is an infinite loop/no defined result.

Solution: Do not unify but only test (C3).


R4 Example for call(G) does not convert the term to a goal.

Submitted by Jan Burse

Solution: Add conversion to example (C4).


R5 For read-options variable_names/1, singletons/1 the order is left undefined, for variables/1 output-unification is left out.

Submitted by Ulrich Neumerkel

Solution: Specify orders, add unification (C5).


R6 There is the read-option variable_names/1 but the corresponding write-option is missing.

Submitted by Ulrich Neumerkel

Solution: Add option (C6), add option to writing a term (C7 a1).


R7 Writing a term uses functional notation too often, sometimes incorrect.

Submitted by Ulrich Neumerkel and Feliks Kluzniak

Writing a term (7.10.5) leaves out

  1. writing of list notation (6.3.5) since 7.10.5 g is not used, when no infix dot operator is present like [:-,-],
  2. curly bracketed terms (6.3.6) like -{a},
  3. comma and bar as infix operators like a :- b,c,
  4. round brackets when terms cannot be read back in the same way otherwise like - (1),
  5. writing '$VAR'(0) as A with effective write-option numbervars(true), and
  6. guaranteeing in 7.10.5 a that "the same character sequence is used for each occurence of a particular variable". The subclause applies only to the actual local Term which is a single variable and not the entire term written.

Solution: Modify 7.10.5 (C7).


R8 Missing type float, superfluous type character_code_list, missing comma.

Submitted by Joachim Schimpf

Solution: (C8).


R9 Example 8.5.1.4 does not include the case when the Prolog flag max_arity has a value unbounded.

Submitted by Jan Burse

Solution: Add case for unbounded flag (C10).


R10 Typo in assertz/1 description.

Submitted by Jan Burse

Solution: C11.


R11 Original 8.10.3.4 example no.20 was right. The change introduced in Cor.1 was incorrect.

Submitted by Ulrich Neumerkel

Solution: C12


R12 Description of set_ouput/1 misses success.

Submitted by Ulrich Neumerkel

Solution: C13.


R13 Reading process misses reference.

Submitted by Ulrich Neumerkel

The reading process defined in 8.14.1.1 specifies in step k that parsing should be performed using a non-terminal for tokens (6.4). However, parsing needs the full syntax in (6.2.2) otherwise no terms are constructed.

Solution: C15.


R14 Example writing dot incorrect.

Submitted by Mats Carlsson

With an effective write-option quoted(true), dot as atom, functor, and operator should always be written the same way, that is, using quotes, because there is a single place which is used by all three to determine whether or not the atom should be quoted (7.10.5 d) and because "(2) the sequence of characters forming the atom could not be input as a valid atom without quoting". Thus, the example in 8.14.2.4 should be changed to include quotes.

Solution: C16.


R15 Incorrect type in domain error.

Submitted by Joachim Schimpf

In the fourth example of 8.17.1.4 a domain flag is used, but there is only the domain prolog_flag.

Solution: Replace domain (C17).


R16 Power takes unevaluated second argument.

Submitted by Ulrich Neumerkel

According to 9.3.1.3 c, X is -1.0** (1+0) would be an error, while X is -1.0**1 succeeds.

Solution: C18.


R17 Unexpected error condition in integer power.

Submitted by Per Mildner and Joachim Schimpf

The definition of integer power is too restrictive. E.g., X is -1 ^ -2 produces an error, yet it should be the integer -1.

Solution: C19.


Ulrich Neumerkel (editor)
Institut für Computersprachen E185/1
TU Wien
Argentinierstr. 8
A-1040 Wien
Austria
Telephone: +43 1 58801 18513
E-Mail: Ulrich.Neumerkel@tuwien.ac.at
September 2016

Document history

Version control
Validated HTML