An abstract interpretation scheme for groundness, freeness, and sharing analysis of logic programs

  • Renganathan Sundararajan
  • John S. Conery
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 652)


Static global analyses based on abstract interpretation have been used to derive properties of programs. The analyses differ in the expressiveness of the abstract domains and the precision and efficiency of the domain operations. We extend an abstract domain defined by Jacobs and Langen and present new abstract domain operations to derive freeness, groundness, and sharing of variables in logic programs. Analysis of non-trivial programs shows that our method is more precise and more efficient than previous proposals.


logic programming abstract interpretation groundness analysis sharing analysis 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Codish, M., Dams, D., and Yardeni, E. Derivation and safety of an abstract unification algorithm for groundness and aliasing analysis. In Proceedings of the Eighth International Conference on Logic Programming (1991), pp. 79–96.Google Scholar
  2. 2.
    Conery, J. S.Parallel Execution of Logic Programs. Kluwer Academic Publishers, Boston, MA, 1987.Google Scholar
  3. 3.
    Debray, S. K. Static inference of modes and data dependencies. ACM Transactions of Programming Languages and Systems 11, 3 (July 1989), 418–450.CrossRefGoogle Scholar
  4. 4.
    Debray, S. K., and Warren, D. S. Automatic mode inference for prolog programs. In Proceedings of the 1986 Symposium on Logic Programming (1986).Google Scholar
  5. 5.
    Hecht, M. S.Flow Analysis of Computer Programs. Programming Language Series. North-Holland, New York, 1977.Google Scholar
  6. 6.
    Hermenegildo, M.An Abstract Machine Based Execution Model for Computer Architecture Design and Efficient Implementation of Logic Programs in Parallel. PhD thesis, University of Texas at Austin, August 1986.Google Scholar
  7. 7.
    Jacobs, D., and Langen, A. Accurate and efficient approximation of variable aliasing in logic programs. In Proceedings of the North American Conference on Logic Programming (1989), pp. 154–165.Google Scholar
  8. 8.
    Jones, N., and Sondergaard, H. A semantics based framework for the abstract interpretation of prolog. In Abstract Interpretation of Declarative Languages, S. Abramsky and C. Hankin; Eds. Ellis Horwood Limited, 1987, ch. 6, pp. 123–142.Google Scholar
  9. 9.
    Lassez, J.-L., Maher, M., and Marriott, K. Unification Revisited. In Foundations of Deductive Databases and Logic Programming, J. Minker, Ed. Morgan Kaufmann Publishers Inc., 1988, pp. 587–626.Google Scholar
  10. 10.
    Lloyd, J. W.Foundations of Logic Programming. Springer-Verlag, Berlin, 1984.Google Scholar
  11. 11.
    Muthukumar, K., and Hermenegildo, M. Combined determination of sharing and freeness of program variables through abstract interpretation. In Proceedings of the Eighth International Conference on Logic Programming (1991).Google Scholar
  12. 12.
    Sundararajan, R. An introduction to abstract interpretation of logic programs. Tech. Rep. CIS-TR 91-05, Dept of Computer and Information Science, University of Oregon, Eugene, Oregon, U.S.A. 97403, 1991.Google Scholar
  13. 13.
    Warren, D. H. D., Hermenegildo, M., and Debray, S. K. On the practicality of global flow analysis of logic programs. In 1988 Joint Conference on Logic Programming (1988), pp. 684–699.Google Scholar
  14. 14.
    Winsborough, W. Automatic, Transparent Paralellization of Logic Programs at Compile Time. PhD thesis, Dept. of Computer Science, University of Wisconsin-Madison, Sept. 1988.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1992

Authors and Affiliations

  • Renganathan Sundararajan
    • 1
  • John S. Conery
    • 1
  1. 1.University of OregonEugeneUSA

Personalised recommendations