Abstract
The domain of definite Boolean functions, Def, can be used to express the groundness of, and trace grounding dependencies between, program variables in (constraint) logic programs. In this paper, previously unexploited computational properties of Def are utilised to develop an efficient and succinct groundness analyser that can be coded in Prolog. In particular, entailment checking is used to prevent unnecessary least upper bound calculations. It is also demonstrated that join can be defined in terms of other operations, thereby eliminating code and removing the need for preprocessing formulae to a normal form. This saves space and time. Furthermore, the join can be adapted to straightforwardly implement the downward closure operator that arises in set sharing analyses. Experimental results indicate that the new Def implementation gives favourable results in comparison with BDD-based groundness analyses.
Chapter PDF
Similar content being viewed by others
Keywords
References
T. Armstrong, K. Marriott, P. Schachte, and H. Søndergaard. Two Classes of Boolean Functions for Dependency Analysis. Science of Computer Programming, 31(1):3–45, 1998.
R. Bagnara. A Reactive Implementation of Pos using ROBDDs. In Programming Languages: Implementation, Logics and Programs, volume 1140 of Lecture Notes in Computer Science, pages 107–121. Springer, 1996.
R. Bagnara and P. Schachte. Factorizing Equivalent Variable Pairs in ROBDD-Based Implementations of Pos. In Seventh International Conference on Algebraic Methodology and Software Technology, volume 1548 of Lecture Notes in Computer Science, pages 471–485. Springer, 1999.
N. Baker and H. Søndergaard. Definiteness Analysis for CLP(\( \mathcal{R} \)). In Australian Computer Science Conference, pages 321–332, 1993.
P. Bigot, S. Debray, and K. Marriott. Understanding Finiteness Analysis using Abstract Interpretation. In Joint International Conference and Symposium on Logic Programming, pages 735–749. MIT Press, 1992.
F. Bueno, D. Cabeza, M. Hermenegildo, and G. Puebla. Global Analysis of Standard Prolog Programs. In European Symposium on Programming, volume 1058 of Lecture Notes in Computer Science, pages 108–124. Springer, 1996.
M. Codish. Efficient Goal Directed Bottom-up Evaluation of Logic Programs. Journal of Logic Programming, 38(3):355–370, 1999.
M. Codish and B. Demoen. Analysing Logic Programs using “prop”-ositional Logic Programs and a Magic Wand. Journal of Logic Programming, 25(3):249–274, 1995.
M. Codish, A. Heaton, A. King, M. Abo-Zaed, and P. Hill. Widening Positive Boolean Functions for Goal-dependent Groundness Analysis. Technical Report 12-98, Computing Laboratory, May 1998. http://www.cs.ukc.ac.uk/pubs/1998/589.
M. Codish, H. Søndergaard, and P. Stuckey. Sharing and Groundness Dependencies in Logic Programs. ACM Transactions on Programming Languages and Systems, 1999. To appear.
M.-M. Corsini, K. Musumbu, A. Rauzy, and B. Le Charlier. Efficient Bottom-up Abstract Interpretation of Prolog by means of Constraint Solving over Finite Domains. In Programming Language Implementation and Logic Programming, volume 714 of Lecture Notes in Computer Science, pages 75–91. Springer, 1993.
P. Dart. On Derived Dependencies and Connected Databases. Journal of Logic Programming, 11(1&2):163–188, 1991.
S. Dawson, C. R. Ramakrishnan, and D. S. Warren. Practical Program Analysis Using General Purpose Logic Programming Systems — A Case Study. In Programming Language Design and Implementation, pages 117–126. ACM Press, 1996.
B. De Backer and H. Beringer. A CLP Language Handling Disjunctions of Linear Constraints. In International Conference on Logic Programming, pages 550–563. MIT Press, 1993.
C. Fecht. Abstrakte Interpretation logischer Programme: Theorie, Implementierung, Generierung. PhD thesis, Universität des Saarlandes, 1997.
M. García de la Banda, M. Hermenegildo, M. Bruynooghe, V. Dumortier, G. Janssens, and W. Simoens. Global Analysis of Constraint Logic Programs. ACM Transactions on Programming Languages and Systems, 18(5):564–614, 1996.
M. Hermenegildo, R. Warren, and S. Debray. Global Flow Analysis as a Practical Compilation Tool. Journal of Logic Programming, 13(4):349–366, 1992.
A. King, J.-G. Smaus, and P. Hill. Quotienting Share for Dependency Analysis. In European Symposium on Programming, volume 1576 of Lecture Notes in Computer Science, pages 59–73. Springer, 1999.
B. Le Charlier and P. Van Hentenryck. Experimental Evaluation of a Generic Abstract Interpretation Algorithm for Prolog. ACM Transactions on Programming Languages and Systems, 16(1):35–101, 1994.
G. Plotkin. A Note on Inductive Generalisation. Machine Intelligence, 5:153–163, 1970.
P. Van Hentenryck, A. Cortesi, and B. Le Charlier. Evaluation of the domain Prop. Journal of Logic Programming, 23(3):237–278, 1995.
J. Wunderwald. Memoing Evaluation by Source-to-Source Transformation. In Logic Program Synthesis and Transformation, Lecture Notes in Computer Science, pages 17–32. Springer, 1995. 1048.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2000 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Howe, J.M., King, A. (2000). Implementing Groundness Analysis with Definite Boolean Functions. In: Smolka, G. (eds) Programming Languages and Systems. ESOP 2000. Lecture Notes in Computer Science, vol 1782. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-46425-5_13
Download citation
DOI: https://doi.org/10.1007/3-540-46425-5_13
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-67262-3
Online ISBN: 978-3-540-46425-9
eBook Packages: Springer Book Archive