Efficient Groundness Analysis in Prolog


Boolean functions can be used to express the groundness of, and trace grounding dependencies between, program variables in (constraint) logic programs. In this paper, a variety of issues pertaining to the ecient Prolog implementation of groundness analysis are investigated, focusing on the domain of definite Boolean functions, Def . The systematic design of the representation of an abstract domain is discussed in relation to its impact on the algorithmic complexity of the domain operations; the most frequently called operations should be the most lightweight. This methodology is applied to Def, resulting in a new, factorised, non-orthogonal representation, together with new algorithms for its domain operations utilising previously unexploited properties of Def -- for instance, quadratic entailment checking. The iteration strategy driving the analysis is also discussed and a simple, but very effective, optimisation of induced magic is described. The analyser can be implemented straightforwardly in Prolog and the use of a non-ground representation results in an efficient, scalable tool which does not employ widening, even on the largest benchmarks. An extensive experimental evaluation is given

Similar works

Full text

oaioai:CiteSeerX.psu: time updated on 10/22/2014

This paper was published in CiteSeerX.

Having an issue?

Is data on this page outdated, violates copyrights or anything else? Report the problem now and we will take corresponding actions after reviewing your request.