Skip to main content

The impact of granularity in abstract interpretation of Prolog

  • Invited Talk
  • Conference paper
  • First Online:
Static Analysis (WSA 1993)

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

Included in the following conference series:

Abstract

Abstract interpretation of Prolog has received much attention in recent years leading to the development of many frameworks and algorithms. One reason for this proliferation comes from the fact that program analyses can be defined at various granularities, achieving a different trade-off between efficiency and precision. The purpose of this paper is to study this tradeoff experimentally. We review the most frequently proposed granularities which can be expressed as a two dimensional space parametrized by the form of the inputs and outputs. The resulting algorithms are evaluated on three abstract domains with very different functionalities, Mode, Prop, and Pattern to assess the impact of granularity on efficiency and accuracy. This is, to our knowledge, the first study of granularity at the algorithm level and some of the results are particularly surprising.

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. R. Barbuti, R. Giacobazzi, and G. Levi. A General Framework for Semantics-based Bottom-up Abstract Interpretation of Logic Programs. (To appear in ACM Transactions on Programming Languages and Systems).

    Google Scholar 

  2. M. Bruynooghe. A Practical Framework for the Abstract Interpretation of Logic Programs. Journal of Logic Programming, 10:91–124, 1991.

    Google Scholar 

  3. M Bruynooghe and G Janssens. An Instance of Abstract Interpretation: Integrating Type and Mode Inferencing. In Proc. Fifth International Conference on Logic Programming, pages 669–683, Seattle, WA, August 1988.

    Google Scholar 

  4. Bruynooghe, M. et al. Abstract Interpretation: Towards the Global Optimization of Prolog Programs. In Proc. 1987 Symposium on Logic Programming, pages 192–204, San Francisco, CA, August 1987.

    Google Scholar 

  5. C. Codognet, P. Codognet, and J.M. Corsini. Abstract Interpretation of Concurrent Logic Languages. In Proceedings of the North American Conference on Logic Programming (NACLP-90), Austin, TX, October 1990.

    Google Scholar 

  6. P. Codognet and G. Filé. Computations, Abstractions and Constraints in Logic Programs. In Proceedings of the Fourth International Conference on Programming Languages (ICCL'92), Oakland, CA, April 1992.

    Google Scholar 

  7. A. Corsini and G. Filé. A Complete Framework for the Abstract Interpretation of Logic Programs: Theory and Applications. Research report, University of Padova, Italy, 1989.

    Google Scholar 

  8. A. Cortesi, G. Filé, and W. Winsborough. Prop revisited: Propositional formulas as abstract domain for groundness analysis. In Proc. Sixth Annual IEEE Symposium on Logic in Computer Science (LICS'91), pages 322–327, 1991.

    Google Scholar 

  9. P Cousot and R. Cousot. Abstract Interpretation: A Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints. In Conf. Record of Fourth ACM Symposium on Programming Languages (POPL'77), pages 238–252, Los Angeles, CA, 1977.

    Google Scholar 

  10. S. Debray. On the complexity of dataflow analysis of logic programs. In Proc. 19th ICALP, Vienna, Austria, July 1992.

    Google Scholar 

  11. V. Englebert, B. Le Charlier, D. Roland, and P. Van Hentenryck. Generic Abstract Interpretation Algorithms for Prolog: Two Optimization Techniques and Their Experimental Evaluation. Software Practice and Experience, 23(4), April 1993.

    Google Scholar 

  12. G Filé and P Sottero. Abstract Interpretation for Type Checking. In Third International Symposium on Programming Language Implementation and Logic Programming (PLILP-91), Passau (Germany), August 1991.

    Google Scholar 

  13. M. Hermenegildo, R. Warren, and S. Debray. Global Flow Analysis as a Practical Compilation Tool. Journal of Logic Programming, 13(4):349–367, 1992.

    Google Scholar 

  14. D. Jacobs and A. Langen. Accurate and Efficient Approximation of Variable Aliasing in Logic Programs. In Proceedings of the North-American Conference on Logic Programming (NACLP-89), Cleveland, Ohio, October 1989.

    Google Scholar 

  15. N.D. Jones and A. Mycroft. Dataflow Analysis of Applicative Programs using Minimal Function Graphs. In Proceedings of 13th ACM symposium on Principles of Programming Languages, pages 123–142, St. Petersburg, Florida, 1986.

    Google Scholar 

  16. T. Kanamori and T. Kawamura. Analysing Success Patterns of Logic Programs by Abstract Hybrid Interpretation. Technical report, ICOT, 1987.

    Google Scholar 

  17. B. Le Charlier, K. Musumbu, and P. Van Hentenryck. A Generic Abstract Interpretation Algorithm and Its Complexity Analysis (Extended Abstract). In Eighth International Conference on Logic Programming (ICLP-91), Paris (France), June 1991.

    Google Scholar 

  18. B. Le Charlier and P. Van Hentenryck. Experimental Evaluation of a Generic Abstract Interpretation Algorithm for Prolog. ACM Transactions on Programming Languages and Systems. To appear. An extended abstract appeared in the Proceedings of Fourth IEEE International Conference on Computer Languages (ICCL'92), San Francisco, CA, April 1992.

    Google Scholar 

  19. B. Le Charlier and P. Van Hentenryck. A Universal Top-Down Fixpoint Algorithm. Technical Report CS-92-25, CS Department, Brown University, 1992.

    Google Scholar 

  20. B. Le Charlier and P. Van Hentenryck. Groundness Analysis for Prolog: Implementation and Evaluation of the Domain Prop. In Proceedings of the ACM Symposium on Partial Evaluation and Semantics-Based Program Manipulation (PEPM93), Copenhagen, Denmark, June 1993.

    Google Scholar 

  21. K. Marriott and H. Sondergaard. Notes for a Tutorial on Abstract Interpretation of Logic Programs. North American Conference on Logic Programming, Cleveland, Ohio, 1989.

    Google Scholar 

  22. K. Marriott and H. Sondergaard. Semantics-based Dataflow Analysis of Logic Programs. In Information Processing-89, pages 601–606, San Francisco, CA, 1989.

    Google Scholar 

  23. K. Marriott and H. Sondergaard. Abstract Interpretation of Logic Programs: the Denotational Approach, June 1990. To appear in ACM Transaction on Programming Languages.

    Google Scholar 

  24. K. Marriott and H. Sondergaard. Analysis of Constraint Logic Programs. In Proceedings of the North American Conference on Logic Programming (NACLP-90), Austin, TX, October 1990.

    Google Scholar 

  25. C. Mellish. Abstract Interpretation of Prolog Programs, pages 181–198. Ellis Horwood, 1987.

    Google Scholar 

  26. K. Musumbu. Interpretation Abstraite de Programmes Prolog. PhD thesis, University of Namur (Belgium), September 1990.

    Google Scholar 

  27. K. Muthukumar and M. Hermenegildo. Determination of Variable Dependence Information Through Abstract Interpretation. In Proceedings of the North American Conference on Logic Programming (NACLP-89), Cleveland, Ohio, October 1989.

    Google Scholar 

  28. U. Nilsson. A Systematic Approach to Abstract Interpretation of Logic Programs. PhD thesis, Department of Computer and Information Science, Linkoping University, Linkoping (Sweden), December 1989.

    Google Scholar 

  29. U. Nilsson. Systematic Semantic Approximations of Logic Programs. In Proceedings of PLILP 90, pages 293–306, Linkoping, Sweeden, August 1990.

    Google Scholar 

  30. R.A. O'Keefe. Finite Fixed-Point Problems. In J-L. Lassez, editor, Fourth International Conference on Logic Programming, pages 729–743, Melbourne, Australia, 1987.

    Google Scholar 

  31. A. Taylor. Removal of Dereferencing and Trailing in Prolog Compilation. In Sixth International Conference on Logic Programming, Lisbon, Portugal, June 1989.

    Google Scholar 

  32. A. Taylor. LIPS on MIPS: Results From a Prolog Compiler for a RISC. In Seventh International Conference on Logic Programming (ICLP-90), Jerusalem, Israel, June 1990.

    Google Scholar 

  33. P. Van Hentenryck, O. Degimbe, B. Le Charlier, and L. Michel. Abstract Interpretation of Prolog Based on OLDT-Resolution. Technical Report No. CS-93-05, CS Department, Brown University, 1993.

    Google Scholar 

  34. P. Van Hentenryck, O. Degimbe, B. Le Charlier, and L. Michel. The impact of Granularity in Abstract Interpretation of Prolog. Technical report, CS Department, Brown University, 1993. Forthcoming.

    Google Scholar 

  35. D.S. Warren. Memoization for Logic Programs. Communication of the ACM, 35(3), March 1992.

    Google Scholar 

  36. R. Warren, M. Hermedegildo, and S. Debray. On the Practicality of Global Flow Analysis of Logic Programs. In Proc. Fifth International Conference on Logic Programming, pages 684–699, Seattle, WA, August 1988.

    Google Scholar 

  37. W. Winsborough. Multiple Specialization using Minimal-Function Graph Semantics. Journal of Logic Programming, 13(4), 1992.

    Google Scholar 

  38. W.H. Winsborough. A Minimal Function Graph Semantics for Logic Programs. Technical Report TR-711, Computer Science Department, University of Wisconsin at Madison, August 1987.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Patrick Cousot Moreno Falaschi Gilberto Filé Antoine Rauzy

Rights and permissions

Reprints and permissions

Copyright information

© 1993 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Van Hentenryck, P., Degimbe, O., Le Charlier, B., Michel, L. (1993). The impact of granularity in abstract interpretation of Prolog. In: Cousot, P., Falaschi, M., Filé, G., Rauzy, A. (eds) Static Analysis. WSA 1993. Lecture Notes in Computer Science, vol 724. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-57264-3_25

Download citation

  • DOI: https://doi.org/10.1007/3-540-57264-3_25

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-57264-0

  • Online ISBN: 978-3-540-48027-3

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics