Advertisement

Global analysis of standard Prolog programs

  • F. Bueno
  • D. Cabeza
  • M. Hermenegildo
  • G. Puebla
Contributed Papers
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1058)

Abstract

Abstract interpretation-based data-flow analysis of logic programs is, at this point, relatively well understood from the point of view of general frameworks and abstract domains. On the other hand, comparatively little attention has been given to the problems which arise when analysis of a full, practical dialect of the Prolog language is attempted, and only few solutions to these problems have been proposed to date. Existing proposals generally restrict in one way or another the classes of programs which can be analyzed. This paper attempts to fill this gap by considering a full dialect of Prolog, essentially the recent ISO standard, pointing out the problems that may arise in the analysis of such a dialect, and proposing a combination of known and novel solutions that together allow the correct analysis of arbitrary programs which use the full power of the language.

Keywords

Logic Programming Abstract Interpretation Optimization 

References

  1. 1.
    M. Bruynooghe. A Practical Framework for the Abstract Interpretation of Logic Programs. Journal of Logic Programming, 10:91–124, 1991.CrossRefGoogle Scholar
  2. 2.
    F. Bueno, D. Cabeza, M. Hermenegildo, and G. Puebla. Data-Flow Analysis of Prolog Programs with Extra-Logical Features. Technical Report CLIP2/95.0, Computer Science Dept., Technical U. of Madrid (UPM), Facultad Informatica UPM, 28660-Boadilla del Monte, Madrid-Spain, March 1995.Google Scholar
  3. 3.
    F. Bueno, M. García de la Banda, D. Cabeza, and M. Hermenegildo. The &-Prolog Compiler System — Automatic Parallelization Tools for LP. Technical Report CLIP5/93.0, Computer Science Dept., Technical U. of Madrid (UPM), Facultad Informatica UPM, 28660-Boadilla del Monte, Madrid-Spain, June 1993.Google Scholar
  4. 4.
    F. Bueno, M. García de la Banda, and M. Hermenegildo. Effectiveness of Global Analysis in Strict Independence-Based Automatic Program Parallelization. In International Symposium on Logic Programming, pages 320–336. MIT Press, November 1994.Google Scholar
  5. 5.
    M. Bugliesi, E. Lamma, and P. Mello. Modularity in Logic Programming. Journal of Logic Programming, 19–20:443–502, July 1994.Google Scholar
  6. 6.
    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.Google Scholar
  7. 7.
    B. Le Charlier, S. Rossi, and P. Van Hentenryck. An Abstract Interpretation Framework Which Accurately Handles Prolog Search-Rule and the Cut. In International Symposium on Logic Programming, pages 157–171. MIT Press, November 1994.Google Scholar
  8. 8.
    M. Codish, M. García de la Banda, M. Bruynooghe, and M. Hermenegildo. Goal Dependent vs Goal Independent Analysis of Logic Programs. In F. Pfenning, editor, Fifth International Conference on Logic Programming and Automated Reasoning, number 822 in LNAI, pages 305–320, Kiev, Ukraine, July 1994. Springer-Verlag.Google Scholar
  9. 9.
    M. Codish, S. Debray, and R. Giacobazzi. Compositional Analysis of Modular Logic Programs. In ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages POPL'93, pages 451–464, ACM, 1993.Google Scholar
  10. 10.
    A. Cortesi and G. File. Abstract interpretation of prolog: the treatment of the built-ins. In Proc. of the 1992 GULP Conference on Logic Programming, pages 87–104. Italian Association for Logic Programming, June 1992.Google Scholar
  11. 11.
    P. Cousot and R. Cousot. Abstract Interpretation: a Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints. In ACM Symposium on Principles of Programming Languages, pages 238–252, 1977.Google Scholar
  12. 12.
    S. Debray, editor. Journal of Logic Programming, Special Issue: Abstract Interpretation, volume 13(1–2). North-Holland, July 1992.Google Scholar
  13. 13.
    S. Debray. Static Inference of Modes and Data Dependencies in Logic Programs. ACM Transactions on Programming Languages and Systems, 11(3):418–450, 1989.Google Scholar
  14. 14.
    S.K. Debray. Flow analysis of dynamic logic programs. Journal of Logic Programming, 7(2):149–176, September 1989.Google Scholar
  15. 15.
    M. Gabbrielli, R. Giacobazzi, and G. Levi. Goal independency and call patterns in the analysis of logic programs. In ACM Symposium on Applied Computing. ACM, 1994.Google Scholar
  16. 16.
    Roberto Giacobazzi, Saumya Debray, and Giorgio Levi. A generalized semantics for constraint logic programs. In Proceedings of the International Conference on Fifth Generation Computer Systems, pages 581–591, ICOT, Japan, 1992. Association for Computing Machinery.Google Scholar
  17. 17.
    M. Hermenegildo, K. Marriott, G. Puebla, and P. Stuckey. Incremental Analysis of Logic Programs. In International Conference on Logic Programming. MIT Press, 1995.Google Scholar
  18. 18.
    M. Hermenegildo, R. Warren, and S. Debray. Global Flow Analysis as a Practical Compilation Tool. Journal of Logic Programming, 13(4):349–367, August 1992.Google Scholar
  19. 19.
    International Organization for Standardization, National Physical Laboratory, Middlesex, England. PROLOG. ISO/IEC DIS 13211 — Part 1: General Core, 1994.Google Scholar
  20. 20.
    International Organization for Standardization, National Physical Laboratory, Middlesex, England. PROLOG. Working Draft 7.0 X3J17/95/1 — Part 2: Modules, 1995.Google Scholar
  21. 21.
    D. Jacobs and A. Langen. Compilation of Logic Programs for Restricted And-Parallelism. In European Symposium on Programming, pages 284–297, 1988.Google Scholar
  22. 22.
    K. Marriott, H. Søndergaard, and N.D. Jones. Denotational Abstract Interpretation of Logic Programs. ACM Transactions on Programming Languages and Systems, 16(3):607–648, 1994.Google Scholar
  23. 23.
    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.CrossRefGoogle Scholar
  24. 24.
    University of Bristol, Katholieke Universiteit Leuven, and Universidad Politécnica de Madrid. Interface between the prince prolog analysers and the compiler. Technical Report KUL/PRINCE/92.1, Katholieke Universiteit Leuven, October 1992.Google Scholar
  25. 25.
    G. Puebla and M. Hermenegildo. Implementation of Multiple Specialization in Logic Programs. In Proc. ACM SIGPLAN Symposium on Partial Evaluation and Semantics Based Program Manipulation. ACM, June 1995.Google Scholar
  26. 26.
    P. Van Roy and A.M. Despain. High-Performace Logic Programming with the Aquarius Prolog Compiler. IEEE Computer Magazine, pages 54–68, January 1992.Google Scholar
  27. 27.
    V. Santos-Costa, D.H.D. Warren, and R. Yang. The Andorra-I Preprocessor: Supporting Full Prolog on the Basic Andorra Model. In 1991 International Conference on Logic Programming, pages 443–456. MIT Press, June 1991.Google Scholar
  28. 28.
    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
  29. 29.
    W. Winsborough. Multiple Specialization using Minimal-Function Graph Semantics. Journal of Logic Programming, 13(2 and 3):259–290, July 1992.MathSciNetGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1996

Authors and Affiliations

  • F. Bueno
    • 1
  • D. Cabeza
    • 1
  • M. Hermenegildo
    • 1
  • G. Puebla
    • 1
  1. 1.Computer Science DepartmentTechnical University of Madrid (UPM)Boadilla del MonteSpain

Personalised recommendations