Remarks on SWI 7

Ulrich Neumerkel <[email protected]>
Newsgroups gmane.comp.ai.prolog.swi
Message-ID <[email protected]>
Some remarks on the appearance of SWI 7.

In the past there have been discussions on language features on this
list and elsewhere.  In this context I maintained the position that
many of the innovative features in SWI can be crafted such that they
conform to ISO standard ISO/IEC 13211-1:1995 as an extension, that is,
according to subclause 5.5 Extensions.  In particular, the very
interesting ideas to better support text could be realized within ISO.

The ISO standard was never meant as the last word on Prolog but as a
solid foundation for existing investments and further developments.
Recent corrigenda (Cor.2:2012), removed the very last obstacles for
DCG and CHR.  That is, both DCGs and CHRs can now be defined without
redefining token syntax. And there are cleaner ways to handle
variables which benefits constraints.

It is quite feasible to conform to ISO.  In fact, the very first
conforming systems appeared with the publication of the standard in
1995.  And these systems are even today more conforming than SWI ever
was.  Also the recent corrigenda have been taken into account widely.
SICStus 4.3, GNU 1.4.4 come to mind who now conform a 100% when
reading syntax.  Id est: I **know** 0 (zero) differences.  Same for
other areas, I have not tested everything. Don't hesitate to
report any differences if you know them.

http://www.complang.tuwien.ac.at/ulrich/iso-prolog/conformity_assessment

SWI 7 now gave up most of Prolog syntax and semantics.  And by that I
mean the common subset between ISO Prolog and predecessors all the way
down to DECsystem 10 Prolog of 1978 (that's the first manual's date).
There **is** a lot in common in all these systems.  Maybe heated
discussions have blurred that aspect.  A typical Prolog class/textbook
will never go to such detail as to identify a difference.  Helas, SWI
never supported that common subset in full.  And it seems that SWI 7
shifts into non-relational properties as defaultiness.

Now, SWI 7 jettisoned that common subset.  Maybe that makes sense,
maybe not.  I know not.  It is certainly a possible research path.
What I do know for sure is that this system is no longer Prolog.  In
the same sense that, say, Clojure is no longer Lisp, although it is
considered "a Lisp".  It would be fair to reflect that in the name of
SWI 7.

From a personal viewpoint I am certainly disappointed after spending
some years in improving SWI in the hope that I will one day be able to
use it as a stable platform.

All that said, let us not forget the breakthroughs and victories of
SWI in the last years: occurs_check, the ingenious algorithm for
unify_with_occurs_check/2 with infinite trees which still awaits a
formal treatment, library(clpfd), library(pio) - regrettably never
completed, setup_call_cleanup/3 - and some more.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.