Abstract
This paper describes an algebraic approach to the sharing analysis of logic programs based on an abstract domain of set logic programs. Set logic programs are logic programs in which the terms are sets of variables and unification is based on an associative, commutative, and idempotent equality theory. We show that the proposed domain is isomorphic to the set-sharing domain of Jacobs and Langen and argue that there are good reasons to adopt our representation: (1) the abstract domain and the abstract operations defined are based on a theory for sets and set unification, resulting in a more intuitive approach to sharing analysis; (2) the abstract substitutions are like substitutions and can be applied to (abstract) atoms. This facilitates program analyses performed as abstract compilation. Finally (3) our representation makes explicit the “domain” of interest of an abstract substitution – which solves some technical problems in defining the domain of Jacobs and Langen.
Preview
Unable to display preview. Download preview PDF.
References
F. Baader and J. Siekmann. Unification theory. In D. Gabbay, C. Hogger, and J. Robinson, editors, Handbook of Logic in Artificial Intelligence and Logic Programming, volume 2, pages 41–126. Oxford Science Publications, 1994.
M. Codish and B. Demoen. Analysing logic programs using “prop”-ositional logic programs and a magic wand. The Journal of Logic Programming, 25(3):249–274, December 1995.
M. Codish, B. Demoen, and K. Sagonas. Xsb as the natural habitat for general purpose program analysis. Technical report, Ben-Gurion University of the Negev, 1997. ftp://ftp.cs.bgu.ac.il/pub/people/codish/absxsb.ps.
M. Codish and V. Lagoon.Type dependencies for logic programs using aciunification. In Proceedings of the 1996 Israeli Symposium on Theory of Computing and Systems, pages 136–145. IEEE Press, June 1996.
M. Codish, V. Lagoon, and F. Bueno. Sharing analysis for logic programs using set logic programs. In Proceedings of the 1996 Conference on Declarative Programming — APPIA-GULP-PRODE, pages 29–40, July 1996.
A. Cortesi, B. L. Charlier, and P. V. Hentenryck. Combinations of abstract domains for logic programming. In 21ST ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 227–239. ACM Press, 1994.
A. Cortesi and G. FiIé. Abstract interpretation of logic programs: An abstract domain for groundness, sharing, freeness and compoundness analysis. In Proceedings of the Symposium on Partial Evaluation and Semantics-Based Program Manipulation. SIGPLAN NOTICES 26 (9), pages 52–61. ACM Press, 1991.
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. ACM Press, January 1977.
S. Dawson, C. Ramakrishnan, and D. Warren. Practical Program Analysis Using General Purpose Logic Programming Systems — A Case Study. In Proceedings of the ACM SIGPLAN'96 Conference on Programming Language Design and Implementation, pages 117–126, New York, USA, 1996. ACM Press.
M. Falaschi, G. Levi, M. Martelli, and C. Palamidessi. Declarative modeling of the operational behavior of logic languages. Theoretical Computer Science, 69(3):289–318, 1989.
T. Frühwirth, E. Shapiro, M. Y. Vardi, and E. Yardeni. Logic programs as types for logic programs. In Proceedings, Sixth Annual IEEE Symposium on Logic in Computer Science, pages 300–309, Amsterdam, The Netherlands, July 15-18 1991. IEEE Computer Society Press.
J. P. Gallagher and D. A. Waal. Fast and precise regular approximations of logic programs. In P. Van Hentenryck, editor, Logic Programming — Proceedings of the Eleventh International Conference on Logic Programming, pages 599–613, Massachusetts Institute of Technology, 1994. The MIT Press.
R. Giacobazzi, S. Debray, and G. Levi. Generalized Semantics and Abstract Interpretation for Constraint Logic Programs. Journal of Logic Programming, 25(3):191–248, 1995.
M. V. Hermenegildo and K. J. Greene. &-Prolog and its performance: Exploiting independent And-Parallelism. In David H. D. Warren and Peter Szeredi, editors, Proceedings of the Seventh International Conference on Logic Programming, pages 253–268, Jerusalem, 1990. The MIT Press.
M. V. Hermenegildo, R. Warren, and S. K. Debray. Global flow analysis as a practical compilation tool. The Journal of Logic Programming, 13(1, 2, 3 and 4):349–366, 1992.
D. Jacobs and A. Langen. Static analysis of logic programs for independent and parallelism. The Journal of Logic Programming, 13(2 and 3):291–314, 1992.
P. Lincoln and T. Christian. Adventures in associative-commutative unification. Journal of Symbolic Computation, 8(1,2):217–240, 1989.
J. Lloyd. Foundations of Logic Programming. Springer-Verlag, 2nd edition, 1987.
A. Mulkers, W. Simoens, G. Janssens, and M. Bruynooghe. On the practicality of abstract equation systems. In International Conference on Logic Programming. MIT Press, June 1995.
K. Muthukumar and M. Hermenegildo. Compile-time derivation of variable dependency using abstract interpretation. The Journal of Logic Programming, 13(2 and 3):315–347, 1992.
D. A. Plaisted. The occur-check problem in Prolog. In Proceedings of the International Symposium on Logic Programming, pages 272–280, Atlantic City, 1984. IEEE, Computer Society Press.
C. Ramakrishnan, I. Ramakrishnan, and R. Sekar. A symbolic constraint solving framework for analysis of logic programs. In Proceedings of the ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation, pages 12–23, New York, USA, 1995. ACM Press.
H. Søndergaard. An application of abstract interpretation of logic programs: Occur-check reduction. In Proceedings of ESOP 86, volume 213 of Lecture Notes in Computer Science, pages 327–338. Springer-Verlag, 1986. (Extended Abstract).
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1997 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Codish, M., Lagoon, V., Bueno, F. (1997). An algebraic approach to sharing analysis of logic programs. In: Van Hentenryck, P. (eds) Static Analysis. SAS 1997. Lecture Notes in Computer Science, vol 1302. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0032734
Download citation
DOI: https://doi.org/10.1007/BFb0032734
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-63468-3
Online ISBN: 978-3-540-69576-9
eBook Packages: Springer Book Archive