Static Analysis pp 153-164

Freeness, sharing, linearity and correctness — All at once

  • M. Bruynooghe
  • M. Codish
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 724)


The availability of freeness and sharing information for logic programs has proven useful in a wide variety of applications. However, deriving correct freeness and sharing information turns out to be a complex task. In a recent paper, Codish et al. introduce a domain of abstract equation systems and illustrate the systematic derivation of an abstract unification algorithm for sharing and freeness. This paper follows the same approach, and using a more detailed abstraction, develops a more powerful transition system. The resulting algorithm is more prone to efficient implementation as it computes a single abstract solved form which exhibits sharing, freeness, groundness and linearity information.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    M. Codish, D. Dams, G. File, M. Bruynooghe. Freeness Analysis for Logic Programs — And Correctness? Proc. of Tenth Int. Conf. on Logic Programming, Budapest, 1993.Google Scholar
  2. 2.
    M. Codish, D. Dams, and E. Yardeni. Derivation and safety of an abstract algorithm for groundness and aliasing analysis. In K. Furukawa, editor, Proc. Eighth Int. Conf. on Logic Programming, pages 79–93. MIT Press, 1991.Google Scholar
  3. 3.
    M. Codish, A. Mulkers, M. Bruynooghe, M. García de la Banda and M. Hermenegildo. Improving abstract interpretations by combining domains. In Proc. ACM Symposium on Partial Evaluation and Semantics Based Program Manipulation. 1993.Google Scholar
  4. 4.
    A. Cortesi and G. Filé. Abstract interpretation of logic programs: an abstract domain for groundness, sharing, freeness and compoundness analysis. In P. Hudak and N. Jones, editors, Proc. ACM Symposium on Partial Evaluation and Semantics Based Program Manipulation. SIGPLAN NOTICES vol. 26, n.11, 1991.Google Scholar
  5. 5.
    P. Cousot and R. Cousot. Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In Proc. Fourth ACM symp. on Principles of Programming Languages, pages 238–252, Los Angeles, California, 1977.Google Scholar
  6. 6.
    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
  7. 7.
    J.-L. Lassez, M.J. Maher, and K. Marriott. Unification revisited. In J. Minker, editor, Foundations of Deductive Databases and Logic Programming. Morgan Kauffmann, 1987.Google Scholar
  8. 8.
    A. Martelli and U. Montanari. An efficient unification algorithm. ACM Transactions on Programming Languages and Systems, 4(2):258–282, April 1982.Google Scholar
  9. 9.
    K. Muthukumar and M. Hermenegildo. Combined determination of sharing and freeness of program variables through abstract interpretation. In K. Furukawa, editor, Proc. Eighth International Conference on Logic Programming, pages 49–63. MIT Press, 1991.Google Scholar
  10. 10.
    H. SØndergaard. An application of abstract interpretation of logic programs: occur check reduction. In B. Robinet and R. Wilhelm, editors, ESOP'86 Proc. European Symposium on Programming, LNCS 213, pages 327–338. Springer-Verlag, 1986.Google Scholar
  11. 11.
    R. Sundararajan and J. Conery. An abstract interpretation scheme for groundness, freeness, and sharing analysis of logic programs. Proc. Twelfth FST & TCS Conf., New Delhi, Dec. 1992.Google Scholar

Copyright information

© Springer-Verlag 1993

Authors and Affiliations

  • M. Bruynooghe
    • 1
  • M. Codish
    • 1
  1. 1.Department of Computer ScienceK.U. LeuvenBelgium
  2. 2.Dept. of Math. & Comp. Sci.Ben Gurion Univ.Beer-ShebaIsrael

Personalised recommendations