Advertisement

Goal dependent vs. goal independent analysis of logic programs

  • M. Codish
  • M. García de la Banda
  • M. Bruynooghe
  • M. Hermenegildo
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 822)

Abstract

Goal independent analysis of logic programs is commonly discussed in the context of the bottom-up approach. However, while the literature is rich in descriptions of top-down analysers and their application, practical experience with bottom-up analysis is still in a preliminary stage. Moreover, the practical use of existing top-down frameworks for goal independent analysis has not been addressed in a practical system. We illustrate the efficient use of existing goal dependent, top-down frameworks for abstract interpretation in performing goal independent analyses of logic programs much the same as those usually derived from bottom-up frameworks. We present several optimizations for this flavour of top-down analysis. The approach is fully implemented within an existing top-down framework. Several implementation tradeoffs are discussed as well as the influence of domain characteristics. An experimental evaluation including a comparison with a bottom-up analysis for the domain Prop is presented. We conclude that the technique can offer advantages with respect to standard goal dependent analyses.

Keywords

Logic Program Abstract Interpretation Query Pattern Abstract Domain Fixed Point Iteration 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    R. Barbuti, R. Giacobazzi, and G. Levi. A general framework for semantics-based bottom-up abstract interpretation of logic programs. ACM Transactions on Programming Languages and Systems, 15:133–181, 1993.Google Scholar
  2. 2.
    M. Bruynooghe. A Practical Framework for the Abstract Interpretation of Logic Programs. Journal of Logic Programming, 10:91–124, 1991.Google Scholar
  3. 3.
    M. Codish, D. Dams, and E. Yardeni. Bottom-up abstract interpretation of logic programs. Journal of Theoretical Computer Science, 124:93–125, 1994.Google Scholar
  4. 4.
    M. Codish, B. Demoen. Analysing Logic Programs using “Prop”-ositional Logic Programs and a Magic Wand. In Proceedings International Logic Programming Symposium. Vancouver, October 1993. MIT Press.Google Scholar
  5. 5.
    M. Codish, A. Mulkers, M. Bruynooghe, M. de la Banda, and M. Hermenegildo. Improving Abstract Interpretations by Combining Domains. In Proc. ACM SIG-PLAN Symposium on Partial Evaluation and Semantics Based Program Manipulation. ACM, 1993.Google Scholar
  6. 6.
    M. Corsini, K. Musumbu, A. Rauzy, B. Le Charlier. Efficient bottom-up abstract interpretation of Prolog by means of constraint solving over symbolic finite domains. Proc. of the Fifth International Symposium on Programming Language Implementation and Logic Programming. Tallinn, August 1993, LNCS 714, Springer Verlag.Google Scholar
  7. 7.
    P. Cousot and R. Cousot. Abstract Interpretation: A Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints. In Conf. Rec. 4th Acm Symp. on Prin. of Programming Languages, pages 238–252, 1977.Google Scholar
  8. 8.
    S. K. Debray and D. S. Warren. Automatic Mode Inference for Prolog Programs. Journal of Logic Programming, 5(3):207–229, September 1988.Google Scholar
  9. 9.
    M. Falaschi, G. Levi, M. Martelli, and C. Palamidessi. Declarative Modelling of the Operational Behaviour of Logic Programs. Theoretical Computer Science, 69:289–318, 1989.Google Scholar
  10. 10.
    J. Gallagher, M. Codish, E. Shapiro. Specialisation of Prolog and FCP Programs Using Abstract Interpretation. New Generation Computing, 6 (1988) 159–186.Google Scholar
  11. 11.
    D. Jacobs and A. Langen. Accurate and Efficient Approximation of Variable Aliasing in Logic Programs. In 1989 North American Conference on Logic Programming. MIT Press, October 1989.Google Scholar
  12. 12.
    D. Jacobs and A. Langen. Static Analysis of Logic Programs for Independent And-Parallelism. Journal of Logic Programming, 13(2 and 3):291–314, July 1992.Google Scholar
  13. 13.
    K. Marriott and H. SØndergaard. Semantics-based dataflow analysis of logic programs. Information Processing, pages 601–606, April 1989.Google Scholar
  14. 14.
    K. Marriott, H. Sondergaard, and P. Dart. A Characterization of Non-Floundering Logic Programs. In Proc. of the 1990 North American Conference on Logic Programming. MIT Press, 1990.Google Scholar
  15. 15.
    K. Muthukumar and M. Hermenegildo. Determination of Variable Dependence Information at Compile-Time Through Abstract Interpretation. In 1989 North American Conference on Logic Programming. MIT Press, October 1989.Google Scholar
  16. 16.
    K. Muthukumar and M. Hermenegildo. Compile-time Derivation of Variable Dependency Using Abstract Interpretation. Journal of Logic Programming, 13(2 and 3):315–347, July 1992.Google Scholar
  17. 17.
    H. Sondergaard. An application of abstract interpretation of logic programs: occur check reduction. In European Symposium on Programming, LNCS 123, pages 327–338. Springer-Verlag, 1986.Google Scholar
  18. 18.
    R. Warren, M. Hermenegildo, and S. Debray. On the Practicality of Global Flow Analysis of Logic Programs. In Fifth International Conference and Symposium on Logic Programming, pages 684–699, Seattle,Washington, August 1988. MIT Press.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1994

Authors and Affiliations

  • M. Codish
    • 1
  • M. García de la Banda
    • 2
  • M. Bruynooghe
    • 3
  • M. Hermenegildo
    • 2
  1. 1.Dept. of Math. and Comp. Sci.Ben-Gurion Univ.Israel
  2. 2.Facultad de InformáticaUniversidad Politécnica de MadridSpain
  3. 3.Dept. of Comp. Sci.Katholieke Universiteit LeuvenBelgium

Personalised recommendations