Static Analysis pp 153-164
Freeness, sharing, linearity and correctness — All at once
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.
- 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.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.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.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.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.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.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.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.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.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.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