Prolog Standardization: Summer 2010

by Jonathan Hodgson,
Saint Joseph’s University,

Since its meeting in Udine in December of 2008 WG17, the ISO working group on Prolog has met twice, in Pasadena in the summer of 2009 and in Edinburgh in July of this year. During this time the group has made some progress and had a number of setbacks. Since it is more cheerful I will start with the area where we have made the most progress.

Part one of the standard, which defines the core language, does not include a number of predicates and  evaluable functors that are present in almost all (in some cases all) implementations of Prolog. These include

sort/2, retractall/1, (+)/1, max/2, min/2

and most important for DCGs


Ulrich Neumerkel, who is taking over from Roger Scowen as editor of part one will prepare the material for a ballot to take place this fall which will incorporate these into part one.

The Japanese proposal on mutable variables and globals continues to make slow progress. In Edinburgh it was decided that the technical report should be split into two, the first on mutable variables and the second part on globals. This decision is motivated largely because globals present some unresolved issues mostly related to implementation. (Contrary to some  impressions WG17 does take seriously the concerns of implementors. We cannot insert into the standards requirements that would disqualify some implementation from being standard compliant.) In early Fall 2010 we expect to ballot the two technical reports as new work items. Since there is substantial agreement on the proposed mutables portion  I hope that subsequent ballots on at least the mutables section will follow quickly.

In the area of disappointments, Paulo Moura resigned as editor for the technical report on DCGs. Klaus Daessler agreed to take over in his place. In Edinburgh we were able to make some small progress on the Technical Report. As mentioned earlier we will insert call/2-8 into part one. A conforming implementation will thus be required to implement

call/1, call/2, …, call/7, call/8.

Calls of higher arity are not required but may be implemented.  To allow the vertical bar | to be used in grammars WG 17 resolved to to allow the bar character | as an operator, but only if its precedence is greater than or equal to  1001. We also resolved to forbid the creation of operators called ‘{}’ or ‘[]’. We hope to have a new draft  of the DCGs document ready for email comments by December.

Nine people attended some or all of the meeting in Edinburgh. We hope to meet again in Lexington, at which time we should have approved the additions to part one mentioned above and be on the way to the approval of the report on mutable variables.

1 comment for “Prolog Standardization: Summer 2010

  1. September 30, 2010 at 2:00 am

    Pathetic report. Not a single mention of the WG17 Threads draft proposal, started on 2007, and already implemented by three Prolog compilers (SWI-Prolog, XSB, and YAP). Not a single mention of the excelent work already done by most Prolog implementers to comply with the WG17 Core Revison draft proposal, started on 2006. Not a single mention of the Prolog Commons standardization initiative whose contributions go a long way in helping writing portable Prolog code. And talking about disappointments, how about the Edinburgh meeting reversing unanymous decisions from the Pasadena meeting that were already implemented by several Prolog compilers? Specially considering that the changes are either frivolous or drop fundamental support for writing portable code? Backtracking is a nice feature for Prolog. For a standardization process, it just builds distrust between WG17 and Prolog implementers.

Comments are closed.