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.