Skip to main content

Efficient bottom-up abstract interpretation of prolog by means of constraint solving over symbolic finite domains (extended abstract)

  • Conference paper
  • First Online:
Progamming Language Implementation and Logic Programming (PLILP 1993)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 714))

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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.

    Google Scholar 

  2. K. Brace, R. Rudell, and R. Bryant. Efficient implementation of a bdd package. In 27th ACM/IEEE Design Automation Conference. IEEE Press, 1990.

    Google Scholar 

  3. R. Bryant. Graph based algorithms for boolean function manipulation. IEEE transactions on computer, 35:677–691, 1987.

    Google Scholar 

  4. 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.

    Google Scholar 

  5. 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.

    Google Scholar 

  6. 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.

    Google Scholar 

  7. M-M. Corsini, K. Musumbu, and A. Rauzy. First experiments with toupie, 1993. submitted to IJCAI'93.

    Google Scholar 

  8. 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.

    Google Scholar 

  9. 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.

    Google Scholar 

  10. 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.

    Google Scholar 

  11. 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.

    Google Scholar 

  12. 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.

    Google Scholar 

  13. 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).

    Google Scholar 

  14. 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).

    Google Scholar 

  15. 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.

    Google Scholar 

  16. 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.

    Google Scholar 

  17. 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.

    Google Scholar 

  18. 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.

    Google Scholar 

  19. 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.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Maurice Bruynooghe Jaan Penjam

Rights and permissions

Reprints 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

Publish with us

Policies and ethics