Abstract
Accurate variable sharing information is crucial both in the automatic parallelisation and in the optimisation of sequential logic programs. Analysis for possible variable sharing is thus an important topic in logic programming and many analyses have been proposed for inferring dependencies between the variables of a program, for instance, by combining domains and analyses. This paper develops the combined domain theme by explaining how term structure, and in particular linearity, can be represented in a sharing group format. This enables aliasing behaviour to be more precisely captured; groundness information to be more accurately propagated; and in addition, refines the tracking and application of linearity. In practical terms, this permits aliasing and groundness to be inferred to a higher degree of accuracy than in previous proposals and also can speed up the analysis itself. Correctness is formally proven.
Chapter PDF
Similar content being viewed by others
Keywords
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.
References
M. Bruynooghe. A practical framework for the abstract interpretation of logic programs. J. Logic Programming, 10:91–124, 1991.
M. Bruynooghe and M. Codish. Freeness, sharing, linearity and correctness — all at once. In WSA'93, pages 153–164, September 1993.
J.-H. Chang and A. M. Despain. Semi-intelligent backtracking of prolog based static data dependency analysis. In JICSLP'85. IEEE Computer Society, 1985.
M. Codish, D. Dams, G. Filé, and M. Bruynooghe. Freeness analysis for logic programs — and correctness? In ICLP'93, pages 116–131. MIT Press, June 1993.
M. Codish, D. Dams, and E. Yardeni. Derivation and safety of an abstract unification algorithm for groundness and aliasing analysis. In ICLP'91, pages 79–93, Paris, France, 1991. MIT Press.
M. Codish, A. Mulkers, M. Bruynooghe, M. J. Garcia de la Banda, and M. Hermenegildo. Improving abstract interpretation by combining domains. In PEPM'93. ACM Press, 1993.
A. Cortesi and G. Filé. Abstract interpretation of logic programs: an abstract domain for groundness, sharing, freeness and compoundness analysis. In PEPM'91, 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 POPL'77, pages 238–252. ACM Press, 1977.
D. Dams. Personal communication on linearity lemma 2.2. July, 1993.
S. K. Debray. Static inference of modes and data dependencies in logic programs. ACM TOPLAS, 11(3):418–450, July 1989.
W. Hans and S. Winkler. Aliasing and groundness analysis of logic programs through abstract interpretation and its safety. Technical Report Nr. 92-27, RWTH Aachen, Lehrstuhl für Informatik II Ahornstraße 55, W-5100 Aachen, 1992.
M. Hermenegildo. Personal communication on freeness analysis. May, 1993.
M. Hermenegildo and F. Rossi. Non-strict independent and-parallelism. In ICLP'90, pages 237–252, Jerusalem, 1990. MIT Press.
D. Jacobs and A. Langen. Static Analysis of Logic Programs. J. Logic Programming, pages 154–314, 1992.
A. King. A new twist to linearity. Technical Report CSTR 93-13, Department of Electronics and Computer Science, Southampton University, Southampton, 1993.
J. Lassez, M. J. Maher, and K. Marriott. Foundations of Deductive Databases and Logic Programming, chapter Unification Revisited. Morgan Kaufmann, 1987.
B. Le Charlier, K. Musumbu, and P. Van Hentenryck. A generic abstract interpretation algorithm and its complexity. In ICLP'91, pages 64–78. MIT Press, 1991.
J. W. Lloyd. Foundations of Logic Programming. Springer-Verlag, 1987.
K. Marriott and H. Søndergaard. Analysis of constraint logic programs. In NACLP'90, pages 531–547. MIT Press, 1990.
K. Muthukumar and M. Hermenegildo. Combined determination of sharing and freeness of program variables through abstract interpretation. In ICLP'91, pages 49–63, Paris, France, 1991. MIT Press.
K. Muthukumar and M. Hermenegildo. Compile-time derivation of variable dependency through abstract interpretation. J. of Logic Programming, pages 315–437, 1992.
H. Søndergaard. An application of the abstract interpretation of logic programs: occur-check reduction. In ESOP'86, pages 327–338. Springer-Verlag, 1986.
R. Sundararajan and J. Conery. An abstract interpretation scheme for groundness, freeness, and sharing analysis of logic programs. In 12 th FST and TCS Conference, New Delhi, India, December 1992. Springer-Verlag.
A. Taylor. High Performance Prolog Implementation. PhD thesis, Basser Department of Computer Science, Sydney, Australia, July 1991.
H. Xia. Analyzing Data Dependencies, Detecting And-Parallelism and Optimizing Backtracking in Prolog Programs. PhD thesis, University of Berlin, April 1989.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1994 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
King, A. (1994). A synergistic analysis for sharing and groundness which traces linearity. In: Sannella, D. (eds) Programming Languages and Systems — ESOP '94. ESOP 1994. Lecture Notes in Computer Science, vol 788. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-57880-3_24
Download citation
DOI: https://doi.org/10.1007/3-540-57880-3_24
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-57880-2
Online ISBN: 978-3-540-48376-2
eBook Packages: Springer Book Archive