Skip to main content

Compiling OR-parallelism into AND-parallelism

  • Session 3a: Concurrent Logic Languages
  • Conference paper
  • First Online:
Third International Conference on Logic Programming (ICLP 1986)

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

Included in the following conference series:

Abstract

This paper suggests a general method for compiling OR-parallelism into AND-parallelism. An interpreter for an AND/OR-parallel language written in the AND-parallel subset of the language induces a source-to-source transformation from the full language into the AND-parallel subset. This transformation can be identified and implemented as a special purpose compiler or applied using a general purpose partial evaluator.

The method is demonstrated to compile a variant of Concurrent Prolog into an AND-parallel subset of the language called Flat Concurrent Prolog (FCP). It is also shown applicable to the compilation of OR-parallel Prolog to FCP. The transformation identified is simple and efficient. The performance of the method is discussed in the context of programming examples. These compare well with conventionally compiled Prolog programs.

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.

Similar content being viewed by others

References

  1. C. Bloch, “Source-to-Source Transformations of Logic Programs”, Weizmann Institute Technical Report CS84-22, 1984.

    Google Scholar 

  2. K.L. Clark and S. Gregory, “PARLOG: Parallel programming in logic”, Research Report DOC 84/4, April, 1984.

    Google Scholar 

  3. M. Codish, “Compiling OR-Parallelism To AND-Parallelism”, Weizmann Institute of Science, Masters Thesis.

    Google Scholar 

  4. Y. Futamura, “Partial evaluation of computation process — an approach to a compiler-compiler”, Systems, Computers, Controls, Vol. 2, No. 5, 1971, pp. 721–728.

    Google Scholar 

  5. S. Gregory, “Design, Application and Implementation of a Parallel Logic Programming Language”, Phd. Thesis, Imperial College of Science and Technology, 1985.

    Google Scholar 

  6. N.D. Jones, P. Sestoft, H. Sondergaard, “A Experiment in Partial Evaluation: The Generation of a Compiler Generator”, Institute of Datalogy, University of Copenhagen, Denmark, 1985.

    Google Scholar 

  7. K. Kahn, “The Compilation of Prolog Programs Without the use of a Prolog Compiler”, UPMAIL, The Dept. of Computing Science, Uppsala University, 1984.

    Google Scholar 

  8. J. Levi, “A GHC Abstract Machine and Instruction Set”, 1985, Proceedings of 3rd ICLP, 1986.

    Google Scholar 

  9. C. Mierowsky, S. Taylor, E. Shapiro, J. Levy and M. Safra, “The design and implementation of Flat Concurrent Prolog”, Weizmann Institute Technical Report CS85-09, 1985.

    Google Scholar 

  10. T. Miyazaki, A. Takeuchi and T. Chikayama, “A sequential implementation of Concurrent Prolog based on the shallow binding scheme”, 1985 Symposium on Logic Programming, IEEE Computer Society, 1985, pp. 110–118.

    Google Scholar 

  11. Quintus Prolog Reference Manual, Quintus Computer Systems Inc., 1985.

    Google Scholar 

  12. S. Safra, “Partial Evaluation of Concurrent Prolog”, 1986, to appear as a Weizmann Institute Tech. Report.

    Google Scholar 

  13. S. Safra, S. Taylor, E. Shapiro, “Distributed Execution of Flat Concurrent Prolog”, Unpublished note, 1985.

    Google Scholar 

  14. V.A. Saraswat, “Problems with Concurrent Prolog”, Unpublished note.

    Google Scholar 

  15. E. Shapiro, “A subset of Concurrent Prolog and its interpreter”, ICOT Technical Report TR-003, February, 1983.

    Google Scholar 

  16. E. Shapiro, “Concurrent Prolog: A Progress Report”, 1985, preliminary version.

    Google Scholar 

  17. W. Silverman, A. Houri and M. Hirsch, “Logix user manual, release 1.1”, Weizmann Institute of Science, 1985.

    Google Scholar 

  18. A. Takeuchi, “How to solve it in Concurrent Prolog”, Unpublished note, 1983.

    Google Scholar 

  19. A. Takeuchi and K. Furukawa, “Partial evaluation of Prolog programs and its application to meta programming”, ICOT Technical Report TR-126, 1985.

    Google Scholar 

  20. K. Ueda, “Guarded Horn Clauses”, ICOT Technical Report TR-103, 1985.

    Google Scholar 

  21. K. Ueda, “Concurrent Prolog re-examined”, to appear as ICOT Technical Report.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Ehud Shapiro

Rights and permissions

Reprints and permissions

Copyright information

© 1986 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Codish, M., Shapiro, E. (1986). Compiling OR-parallelism into AND-parallelism. In: Shapiro, E. (eds) Third International Conference on Logic Programming. ICLP 1986. Lecture Notes in Computer Science, vol 225. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-16492-8_82

Download citation

  • DOI: https://doi.org/10.1007/3-540-16492-8_82

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-16492-0

  • Online ISBN: 978-3-540-39831-8

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics