1

In the introduction here, it states that the ISO module standard for Prolog was a failure. Can anyone elaborate on this?

SDG
  • 2,260
  • 8
  • 35
  • 77
  • 7
    This question and the accepted answer are based on a misunderstanding. The linked section says "Prolog modules are defined by an ISO standard. Unfortunately, the standard is considered a failure and, as far as we are aware, not implemented by any concrete Prolog implementation." The standard being referred to here is clearly _ISO/IEC 13211-2_, i.e. _ISO Prolog - Part 2: Modules_ and not the entire ISO Prolog standard. – Michael Ben Yosef Jun 13 '15 at 16:46
  • 1
    @MichaelBenYosef: You can certainly read the text as you did ; however better look at the concrete system and what it does. See my answer for this. – false Jun 14 '15 at 08:03
  • 1
    @false: I followed closely the announcement of SWI7 and the ensuing arguments over non-conformance, so I'm well aware of the situation. Personally, I try to write conforming code while using SWI. But I think there is an interesting question lurking here, albeit one that is also inappropriate for SO: Why do systems like the two you cited embrace _ISO/IEC 13211-1_ while _ISO/IEC 13211-2_ is almost universally ignored. – Michael Ben Yosef Jun 14 '15 at 15:14
  • @MichaelBenYosef: " I try to write conforming code " how do you do this in SWI? – false Jun 14 '15 at 16:23
  • By avoiding everything listed [here](http://www.swi-prolog.org/pldoc/man?section=extensions): dicts, strings, `'.'` as a function symbol, and the non-conforming `[a|b] \== .(a,b)` and `[] \== '[]'`. – Michael Ben Yosef Jun 14 '15 at 16:45
  • SWI-documentation is not suited for conformity considerations. – false Jun 14 '15 at 16:50
  • 1
    @MichaelBenYosef: In any case, please take the last par in my answer seriously. – false Jun 14 '15 at 16:51

1 Answers1

5

The system you cite, SWI-Prolog, is a system whose core is developed by a single developer. Such bold statements as those you quote are his very personal opinions. In the past, SWI did follow ISO standards for a certain period. Then, recently changed. If you want to read more about this, please refer to this answer.

There are systems that are conforming - in particular: SICStus Prolog and GNU Prolog .

In case you want to know more about the purpose of standards, in particular ISO standards, refer to your national standardization body. They certainly offer 1- or 2-day introductory courses. SO is not a place to discuss this.

false
  • 10,264
  • 13
  • 101
  • 209