Abstract
Ordering optimisations are optimisations that can be applied to a concurrent logic program when the atoms of a clause are known to be ordered. In this paper ordering optimisations are reviewed, reformulated and refined. The paper explains how ordering optimisations can be realised in terms of abstract interpretation and shows that by, building on schedule analysis, simple, efficient and accurate forms of abstract interpretation can achieved. The paper outlines how to: identify instances of unification which can be simplified or removed; distinguish repeated synchronisation instructions; indicate which redundant checks can be removed when producers are ordered before consumers in the same thread; identify which variables can be accessed without dereferencing; indicate where variable initialisation and unification can be simplified; and show which variables can be allocated to an environment. Some safety checks can also be removed by using mode information.
Preview
Unable to display preview. Download preview PDF.
References
A. King and P. Soper, “Reducing scheduling overheads for concurrent logic programs,” in International Workshop on Processing Declarative Knowledge, (Kaiserslautern, Germany), (1991).
K. R. Traub, Implementation of Non-strict Functional Programming Languages. Pitman, (1991).
A. King and P. Soper, “A semantic approach to producer and consumer analysis,” in International Conference on Logic Programming Workshop on Concurrent Logic Programming, (Paris, France), (1991).
S. Gregory, Parallel Logic Programming in Parlog, The Language and its Implementation. Addison-Wesley, (1987).
S. K. Debray, “Static analysis of parallel logic programs,” in Proceedings of the Fifth International Conference and Symposium on Logic Programming, pp. 711–732, MIT Press, (1988).
C. Codognet, P. Codognet, and M. Corsini, “Abstract interpretation for con-current logic languages,” in Proceedings of the North American Conference on Logic Programming, (Austin, Texas), MIT Press, October (1990).
M. Codish, M. Falaschi, and K. Marriott, “Suspension analysis of concurrent logic programs,” in Proceedings of the Eighth International Conference on Logic Programming, (Paris, France), pp. 331–345, MIT Press, (1991).
A. Taylor, “Removal of dereferencing and trailing in prolog compilation,” in Proceedings of the Sixth International Conference on Logic Programming, pp. 48–60, MIT Press, (1989).
A. Mariën, G. Janssens, A. Mulkers, and M. Bruynooghe, “The impact of abstract interpretation: an experiment in code generation,” in Proceedings of the Sixth International Conference on Logic Programming, pp. 33–47, MIT Press, (1989).
H. Touati and A. Despain, “An empirical study of the warren abstract machine,” in Proceedings of the 1987 Symposium on Logic Programming, (San Francisco, California), pp. 114–124, (1987).
A. Taylor, High Performance Prolog Implementation. PhD thesis, Basser Department of Computer Science, July (1991).
J. A. Crammond, Implementation of Committed-Choice Logic Languages on Shared Memory Multiprocessors. PhD thesis, Heriot-Watt University, Edinburgh, May (1988).
D. H. D. Warren, “An abstract prolog instruction set,” Tech. Rep. 309, Artificial Intelligence Center, SRI International, Menlo Park, California, August (1983).
P. Van Roy and A. Despain, “The benefits of global dataflow analysis for an optimising prolog compiler,” in North American Conference on Logic Programming, pp. 501–515, MIT Press, October (1990).
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1992 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
King, A., Soper, P. (1992). Ordering optimisations for concurrent logic programs. In: Nerode, A., Taitslin, M. (eds) Logical Foundations of Computer Science — Tver '92. LFCS 1992. Lecture Notes in Computer Science, vol 620. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0023876
Download citation
DOI: https://doi.org/10.1007/BFb0023876
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-55707-4
Online ISBN: 978-3-540-47276-6
eBook Packages: Springer Book Archive