Skip to main content
Log in

Multiway merge with constant delay in Concurrent Prolog

  • Short Notes
  • Published:
New Generation Computing Aims and scope Submit manuscript

Abstract

Multiway dynamic mergers with constant delay are an essential component of a parallel logic programming language. Previous attempts to defined efficient mergers have required complex optimising compilers and run-time support.

This paper proposes a simple technique to implement mergers efficiently. The technique requires an additional data type and the definition of an operation on it. The operation allows multiple processes to access a stream without incurring the cost of searching for the end of stream. It is specified in Concurrent Prolog and is used to define multiple assignment variables using a monitor.

The technique forms the basis for stream merging in Logix, a practical programming environment written in Flat Concurrent Prolog.

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

Access this article

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Explore related subjects

Discover the latest articles, news and stories from top researchers in related subjects.

References

  1. Gelenter, D., “A note on systems programming in Concurrent Prolog,”Proc. of the 1984 International Symposium on Logic Programming, IEEE, Atlantic City, February, 1984.

  2. Mierowsky, C., Taylor, S., Shapiro, E., Levy, J., and Safra, S., “The Design and Implementation of Flat Concurrent Prolog,”Technical Report, CS85-09, Weizmann Institute of Science, July, 1985.

  3. Pnueli, A. and Safra, S., “An Operational Semantics for Flat Concurrent Prolog,” in preparation.

  4. Shapiro, E. and Mierowsky, C., “Fair, biased, and self-balancing merge operators: their specification and implementation in Concurrent Prolog,”New Generation Computing, Vol. 2, No. 3, pp. 221–240, 1984.

    Article  MATH  Google Scholar 

  5. Shapiro, E., “A Subset of Concurrent Prolog and its Interpreter,”ICOT Technical Report, TR-003, February, 1983.

  6. Shapiro, E., “Systems programming in Concurrent Prolog,” inConference Record of the Eleventh Annual ACM Symposium on Principles of Programming Languages, January, 1984.

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

  8. Takeuchi, A. and Furukawa, K., “Bounded-buffer communication in Concurrent Prolog,”New Generation Computing, Vol. 3, No. 2, pp. 145–155, 1985.

    Article  Google Scholar 

  9. Ueda, K. and Chikayama, T., “Efficient stream/array processing in logic programming languages,”Proc. of FGCS’84, ICOT, pp. 317–326, 1984.

Download references

Author information

Authors and Affiliations

Authors

About this article

Cite this article

Shapiro, E., Safra, S. Multiway merge with constant delay in Concurrent Prolog. New Gener Comput 4, 211–216 (1986). https://doi.org/10.1007/BF03037442

Download citation

  • Received:

  • Revised:

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF03037442

Keywords

Navigation