Lazy Set-Sharing Analysis

  • Xuan Li
  • Andy King
  • Lunjin Lu
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3945)


Sharing analysis is widely deployed in the optimisation, specialisation and parallelisation of logic programs. Each abstract unification operation over the classic Jacobs and Langen domain involves the calculation of a closure operation that has exponential worst-case complexity. This paper explores a new tactic for improving performance: laziness. The idea is to compute partial sharing information eagerly and recover full sharing information lazily. The net result is an analysis that runs in a fraction of the time of the classic analysis and yet has comparable precision.


Boolean Function Logic Program Union Operator Recovery Function Abstract Domain 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Armstrong, T., Marriott, K., Schachte, P., Søndergaard, H.: Two Classes of Boolean Functions for Dependency Analysis. Science of Computer Programming 31(1), 3–45 (1998)MathSciNetCrossRefzbMATHGoogle Scholar
  2. 2.
    Bagnara, R., Gori, R., Hill, P.M., Zaffanella, E.: Finite-Tree Analysis for Constraint Logic-Based Languages. Information and Computation 193(2), 84–116 (2004)MathSciNetCrossRefzbMATHGoogle Scholar
  3. 3.
    Bagnara, R., Hill, P.M., Zaffanella, E.: Set-Sharing is Redundant for Pair-Sharing. Theoretical Computer Science 277(1-2), 3–46 (2002)MathSciNetCrossRefzbMATHGoogle Scholar
  4. 4.
    Bagnara, R., Zaffanella, E., Hill, P.M.: Enhanced Sharing Analysis Techniques: A Comprehensive Evaluation. Theory and Practice of Logic Programming 5(1&2), 1–43 (2005)MathSciNetCrossRefzbMATHGoogle Scholar
  5. 5.
    Bruynooghe, M., Demoen, B., Boulanger, D., Denecker, M., Mulkers, A.: A Freeness and Sharing Analysis of Logic Programs Based on A Preinterpretation. In: Cousot, R., Schmidt, D.A. (eds.) SAS 1996. LNCS, vol. 1145, pp. 128–142. Springer, Heidelberg (1996)CrossRefGoogle Scholar
  6. 6.
    Bueno, F., de la Banda, M.G.: Set-sharing is not always redundant for pair-sharing. In: Kameyama, Y., Stuckey, P.J. (eds.) FLOPS 2004. LNCS, vol. 2998, pp. 117–131. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  7. 7.
    Codish, M., Lagoon, V., Bueno, F.: An Algebraic Approach to Sharing Analysis of Logic Programs. Journal of Logic Programming 42(2), 111–149 (2000)MathSciNetCrossRefzbMATHGoogle Scholar
  8. 8.
    Codish, M., Søndergaard, H., Stuckey, P.J.: Sharing and Groundness Dependencies in Logic Programs. ACM Transactions on Programming Languages and Systems 21(5), 948–976 (1999)CrossRefGoogle Scholar
  9. 9.
    Cortesi, A., Filé, G.: Sharing Is Optimal. Journal of Logic Programming 38(3), 371–386 (1999)MathSciNetCrossRefzbMATHGoogle Scholar
  10. 10.
    Crnogorac, L., Kelly, A.D., Sondergaard, H.: A Comparison of Three Occur-Check Analysers. In: Cousot, R., Schmidt, D.A. (eds.) SAS 1996. LNCS, vol. 1145, pp. 159–173. Springer, Heidelberg (1996)CrossRefGoogle Scholar
  11. 11.
    de Kergommeaux, J.C., Codognet, P.: Parallel Logic Programming Systems. ACM Computing Surveys 26(3), 295–336 (1994)CrossRefGoogle Scholar
  12. 12.
    Fecht, C.: An Efficient and Precise Sharing Domain for Logic Programs. In: Kuchen, H., Swierstra, S.D. (eds.) PLILP 1996. LNCS, vol. 1140, pp. 469–470. Springer, Heidelberg (1996)CrossRefGoogle Scholar
  13. 13.
    Hill, P.M., Bagnara, R., Zaffanella, E.: Soundness, Idempotence and Commutativity of Set-Sharing. Theory and Practice of Logic Programming 2(2), 155–201 (2002)MathSciNetCrossRefzbMATHGoogle Scholar
  14. 14.
    Hill, P.M., Zaffanella, E., Bagnara, R.: A Correct, Precise and Efficient Integration of Set-Sharing, Freeness and Linearity for The Analysis of Finite and Rational Tree Languages. Theory and Practice of Logic Programming 4(3), 289–323 (2004)MathSciNetCrossRefzbMATHGoogle Scholar
  15. 15.
    Howe, J.M., King, A.: Efficient Groundness Analysis in Prolog. Theory and Practice of Logic Programming 3(1), 95–124 (2003)MathSciNetCrossRefzbMATHGoogle Scholar
  16. 16.
    Howe, J.M., King, A.: Three Optimisations for Sharing. Theory and Practice of Logic Programming 3(2), 243–257 (2003)MathSciNetCrossRefzbMATHGoogle Scholar
  17. 17.
    Jacobs, D., Langen, A.: Accurate and Efficient Approximation of Variable Aliasing in Logic Programs. In: Overbeek, R.A., Lusk, E.L. (eds.) Proceedings of the North American Conference on Logic Programming, pp. 154–165. MIT Press, Cambridge (1989)Google Scholar
  18. 18.
    Jacobs, D., Langen, A.: Static Analysis of Logic Programs for Independent And-Parallelism. Journal of Logic Programming 13(2&3), 291–314 (1992)CrossRefzbMATHGoogle Scholar
  19. 19.
    King, A.: Pair-Sharing over Rational Trees. Journal of Logic Programming 46(1-2), 139–155 (2000)MathSciNetCrossRefzbMATHGoogle Scholar
  20. 20.
    Lagoon, V., Stuckey, P.J.: Precise Pair-Sharing Analysis of Logic Programs. In: Proceedings of the 4th ACM SIGPLAN International Conference on Principles and Practice of Declarative Programming, pp. 99–108. ACM Press, New York (2002)Google Scholar
  21. 21.
    Langen, A.: Advanced Techniques for Approximating Variables Aliasing in Logic Programs. PhD thesis (1991)Google Scholar
  22. 22.
    Muthukumar, K., Hermenegildo, M.V.: Compile-Time Derivation of Variable Dependency Using Abstract Interpretation. Journal of Logic Programming 13(2-3), 315–347 (1992)CrossRefzbMATHGoogle Scholar
  23. 23.
    Nilsson, U.: Towards a Framework for the Abstract Interpretation of Logic Programs. In: Deransart, P., Lorho, B., Maluszynski, J. (eds.) PLILP 1988. LNCS, vol. 348, pp. 68–82. Springer, Heidelberg (1989)CrossRefGoogle Scholar
  24. 24.
    Søndergaard, H.: An Application of Abstract Interpretation of Logic Programs: Occur Check Reduction. In: Robinet, B., Wilhelm, R. (eds.) ESOP 1986. LNCS, vol. 213, pp. 327–338. Springer, Heidelberg (1986)CrossRefGoogle Scholar
  25. 25.
    Zaffanella, E., Bagnara, R., Hill, P.M.: Widening Sharing. In: Nadathur, G. (ed.) PPDP 1999. LNCS, vol. 1702, pp. 414–432. Springer, Heidelberg (1999)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Xuan Li
    • 1
  • Andy King
    • 2
  • Lunjin Lu
    • 1
  1. 1.Oakland University RochesterUSA
  2. 2.University of KentCanterburyUK

Personalised recommendations