Advertisement

Optimized algorithms for incremental analysis of logic programs

  • Germán Puebla
  • Manuel Hermenegildo
Contributed Papers
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1145)

Abstract

Global analysis of logic programs can be performed effectively by the use of one of several existing efficient algorithms. However, the traditional global analysis scheme in which all the program code is known in advance and no previous analysis information is available is unsatisfactory in many situations. Incremental analysis of logic programs has been shown to be feasible and much more efficient in certain contexts than traditional (non-incremental) global analysis. However, incremental analysis poses additional requirements on the fixpoint algorithm used. In this work we identify these requirements, present an important class of strategies meeting the requirements, present sufficient a priori conditions for such strategies, and propose, implement, and evaluate experimentally a novel algorithm for incremental analysis based on these ideas. The experimental results show that the proposed algorithm performs very efficiently in the incremental case while being comparable to (and, in some cases, considerably better than) other state-of-the-art analysis algorithms even for the non-incremental case. We argue that our discussions, results, and experiments also shed light on some of the many tradeoffs involved in the design of algorithms for logic program analysis.

Keywords

Logic Program Priority Queue Abstract Interpretation Incremental Analysis Answer Pattern 
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. [BGH94]
    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
  2. [Bru91]
    M. Bruynooghe. A Practical Framework for the Abstract Interpretation of Logic Programs. Journal of Logic Programming, 10:91–124, 1991.CrossRefGoogle Scholar
  3. [CC77]
    P. Cousot and R. Cousot. Abstract Interpretation: a Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints. In Fourth ACM Symposium on Principles of Programming Languages, pages 238–252, 1977.Google Scholar
  4. [CH94]
    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.CrossRefGoogle Scholar
  5. [Deb92]
    S. Debray, editor. Journal of Logic Programming, Special Issue: Abstract Interpretation, volume 13(1–2). North-Holland, July 1992.Google Scholar
  6. [HMPS95]
    M. Hermenegildo, K. Marriott, G. Puebla, and P. Stuckey. Incremental Analysis of Logic Programs. In International Conference on Logic Programming. MIT Press, June 1995.Google Scholar
  7. [HWD92]
    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
  8. [Jor94]
    N. Jorgensen. Finding Fixpoints in Finite Function Spaces Using Neededness Analysis and Chaotic Iteration. In International Static Analysis Symposium. Springer-Verlag, 1994.Google Scholar
  9. [KB95]
    A. Krall and T. Berger. Incremental global compilation of prolog with the vienna abstract machine. In International Conference on Logic Programming. MIT Press, June 1995.Google Scholar
  10. [LDMH93]
    B. Le Charlier, O. Degimbe, L. Michel, and P. Van Henteryck. Optimization Techniques for General Purpose Fixpoint Algorithms: Practical Efficiency for the Abstract Interpretation of Prolog. In International Workshop on Static Analysis. Springer-Verlag, 1993.Google Scholar
  11. [MH90]
    K. Muthukumar and M. Hermenegildo. Deriving A Fixpoint Computation Algorithm for Top-down Abstract Interpretation of Logic Programs. Technical Report ACT-DC-153-90, Microelectronics and Computer Technology Corporation (MCC), Austin, TX 78759, April 1990.Google Scholar
  12. [MH91]
    K. Muthukumar and M. Hermenegildo, Combined Determination of Sharing and Freeness of Program Variables Through Abstract Interpretation. In International Conference on Logic Programming, MIT Press, June 1991.Google Scholar
  13. [MH92]
    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
  14. [PH95]
    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
  15. [PH96]
    G. Puebla and M. Hermenegildo. Optimized Algorithms for Incremental Analysis of Logic Programs. Technical Report CLIP3/96.0, Facultad de Informática, UPM, 1996.Google Scholar
  16. [RD92]
    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
  17. [SCWY91]
    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. MIT Press, June 1991.Google Scholar
  18. [VWL94]
    B. Vergauwen, J. Wauman, and J. Levi. Efficient Fixpoint Computation. In International Static Analysis Symposium. Springer-Verlag, 1994.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1996

Authors and Affiliations

  • Germán Puebla
    • 1
  • Manuel Hermenegildo
    • 1
  1. 1.Department of Artificial IntelligenceTechnical University of Madrid (UPM)Spain

Personalised recommendations