Abstract
The subject of this paper is Abstract Interpretation of logic programs, based on Constraint Solving over Finite Domains. More specifically, we use Toupie, a Constraint language based on the μ-calculus. Fixpoint computation is the basic execution mechanism of this language. Therefore it is very convenient and efficient for Abstract Interpretation of logic programs. The following topics are covered in this paper. 1) The semantics and implementation of Toupie are described. 2) A class of abstract domains for logic programs is defined. This class can be viewed as an extension of the domain Prop ([9]) to a limited class of first order formulas with equality. It happens that the elements of this domain coincide with the objects manipulated by Toupie, i.e. 0+ formulas. 3) Transformation rules which allow the transformation of flat logic programs into Toupie programs are given. Execution of the Toupie programs on this abstract domains provides a correct bottom-up abstract interpretation of the corresponding logic programs, i.e. a complete description of the success patterns for the program. 4) An experimental evaluation of the resulting analysis tool was performed and is thoroughly described. The system was used to analyse the benchmark programs used for the same purpose in [13, 14]. Four different instances of the generic domain were evaluated: two variants of Prop and two domains for simple (but useful) type analyses. The results show that the system is very efficient and accurate on the benchmark programs. This seems to demonstrate that the proposed approach to abstract interpretation provides a versatile alternative to previous proposals for a significant class of analyses.
Finally, we explain in the conclusion that the approach can be extended to top-down Abstract Interpretation of logic programs along three possible ways that we will investigate in the future.
Preview
Unable to display preview. Download preview PDF.
References
F. Bancilhon and al. Magic sets and other strange ways to implement logic programs. In Proceedings of Fifth ACM Symposium on Principles of Database Systems, pages 1–15, Cambridge, Massachusetts, 1986.
K. Brace, R. Rudell, and R. Bryant. Efficient implementation of a bdd package. In 27th ACM/IEEE Design Automation Conference. IEEE Press, 1990.
R. Bryant. Graph based algorithms for boolean function manipulation. IEEE transactions on computer, 35:677–691, 1987.
J.R. Burch, E.M. Clarke, and K.L. Mc Millan. Symbolic model checking: 1020 states and beyond. In 5th Annual IEEE Symposium on Logic in Computer Science, pages 428–439. IEEE, 1990.
M. Codish, M. Falaschi, and K. Marriott. Suspension Analysis for Concurrent Logic Programs. In K. Furukawa, editor, Proceedings of the Eighth International Conference on Logic Programming (ICLP'9l), Paris, France, June 1991. MIT Press.
M-M. Corsini, K. Musumbu, and A. Rauzy. The μ-calculus over finite domains as an abstract semantics of prolog. In M. Billaud, P. Castéran, M-M. Corsini, K. Musumbu, and A. Rauzy, editors, WSA '92 Workshop on Static Analysis (Bordeaux), volume 81–82 of Bigre, pages 51–59. Atelier Irisa, Sept. 23–25 1992.
M-M. Corsini, K. Musumbu, and A. Rauzy. First experiments with toupie, 1993. submitted to IJCAI'93.
M.-M. Corsini, K. Musumbu, A. Rauzy, and B. Le Charlier. Efficient Bottom-up Abstract Interpretation of Logic Programs by means of Constraint Solving over Symbolic Finite Domains. Technical report, Institute of Computer Science, University of Namur, Belgium, (also LaBri, Bordeaux), March 1993.
A. Cortesi, G. Filè, and W. Winsborough. Prop revisited: Propositional formula as abstract domain for groundness analysis. In Proceedings of the Sixth Annual IEEE Symposium on Logic in Computer Science (LICS'91), 1991.
M. Falaschi, G. Levi, M. Martelli, and C. Palamidessi. Declarative Modeling of the Operational Behaviour of Logic Languages. Theoretical Computer Science, 69(3):289–318, 1989.
J. Henrard and B. Le Charlier. FOLON: An environment for Declarative Construction of Logic Programs (extended abstract). In M. Bruynooghe and M. Wirsing, editors, Proceedings of the Fourth International Workshop on Programming Language Implementation and Logic Programming (PLILP'92), Lecture Notes in Computer Science, Leuven, August 1992. Springer-Verlag.
B. Le Charlier, K. Musumbu, and P. Van Hentenryck. A generic abstract interpretation algorithm and its complexity analysis. In K. Furukawa, editor, Proceedings of the Eighth International Conference on Logic Programming (ICLP'91), Paris, France, June 1991. MIT Press.
B. Le Charlier and P. Van Hentenryck. Experimental Evaluation of a Generic Abstract Interpretation Algorithm for Prolog. to appear in ACM Transactions on Programming Languages and Systems (TOPLAS), an extended abstract has appeared in Proc. of the IEEE fourth International Conference on Programming Languages (ICCL'92).
B. Le Charlier and P. Van Hentenryck. Groundness Analysis for Prolog: Implementation and Evaluation of the Domain prop (extended abstract), November 1992. to appear in Proc. of the 1993 ACM Symposium on Partial Evaluation and Semantics-Based Program Manipulation (PEPM'93).
B. Le Charlier and P. Van. Hentenryck. A universal top-down fixpoint algorithm. Technical Report 92-22, Institute of Computer Science, University of Namur, Belgium, (also Brown University), April 1992.
K. Marriott and H. Søndergaard. Bottom-up abstract interpretation of logic programs. In R.A. Kowalski and K.A. Bowen, editors, Proceeding of Fifth International Conference on Logic Programming (ICLP'88), pages 733–748, Seattle, Washington, August 1988. MIT Press.
K. Marriott and H. Søndergaard. Notes for a tutorial on abstract interpretation of logic programs. In North American Conference on Logic Programming (NACLP'89), Cleveland, Ohio, 1989.
C.S. Mellish. Abstract interpretation of Prolog programs. In S. Abramski and C. Hankin, editors, Abstract Interpretation of Declarative Languages, chapter 8, pages 181–198. Ellis Horwood Limited, 1987.
U. Nilsson. Abstract interpretation: A kind of magic. In J. Małuszyński and M. Wirsing, editors, Proceedings of the International Workshop on Programming Language Implementation and Logic Programming (PLILP'91), Lecture Notes in Computer Science, Passau, Germany, August 1991. Springer-Verlag.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1993 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Corsini, MM., Musumbu, K., Rauzy, A., Le Charlier, B. (1993). Efficient bottom-up abstract interpretation of prolog by means of constraint solving over symbolic finite domains (extended abstract). In: Bruynooghe, M., Penjam, J. (eds) Progamming Language Implementation and Logic Programming. PLILP 1993. Lecture Notes in Computer Science, vol 714. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-57186-8_72
Download citation
DOI: https://doi.org/10.1007/3-540-57186-8_72
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-57186-5
Online ISBN: 978-3-540-47945-1
eBook Packages: Springer Book Archive