Skip to main content

Ordering optimisations for concurrent logic programs

  • Conference paper
  • First Online:
Logical Foundations of Computer Science — Tver '92 (LFCS 1992)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 620))

Included in the following conference series:

  • 150 Accesses

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. A. King and P. Soper, “Reducing scheduling overheads for concurrent logic programs,” in International Workshop on Processing Declarative Knowledge, (Kaiserslautern, Germany), (1991).

    Google Scholar 

  2. K. R. Traub, Implementation of Non-strict Functional Programming Languages. Pitman, (1991).

    Google Scholar 

  3. 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).

    Google Scholar 

  4. S. Gregory, Parallel Logic Programming in Parlog, The Language and its Implementation. Addison-Wesley, (1987).

    Google Scholar 

  5. 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).

    Google Scholar 

  6. 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).

    Google Scholar 

  7. 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).

    Google Scholar 

  8. 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).

    Google Scholar 

  9. 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).

    Google Scholar 

  10. 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).

    Google Scholar 

  11. A. Taylor, High Performance Prolog Implementation. PhD thesis, Basser Department of Computer Science, July (1991).

    Google Scholar 

  12. J. A. Crammond, Implementation of Committed-Choice Logic Languages on Shared Memory Multiprocessors. PhD thesis, Heriot-Watt University, Edinburgh, May (1988).

    Google Scholar 

  13. D. H. D. Warren, “An abstract prolog instruction set,” Tech. Rep. 309, Artificial Intelligence Center, SRI International, Menlo Park, California, August (1983).

    Google Scholar 

  14. 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).

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Anil Nerode Mikhail Taitslin

Rights and permissions

Reprints 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

Publish with us

Policies and ethics