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.
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.References
Gelenter, D., “A note on systems programming in Concurrent Prolog,”Proc. of the 1984 International Symposium on Logic Programming, IEEE, Atlantic City, February, 1984.
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.
Pnueli, A. and Safra, S., “An Operational Semantics for Flat Concurrent Prolog,” in preparation.
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.
Shapiro, E., “A Subset of Concurrent Prolog and its Interpreter,”ICOT Technical Report, TR-003, February, 1983.
Shapiro, E., “Systems programming in Concurrent Prolog,” inConference Record of the Eleventh Annual ACM Symposium on Principles of Programming Languages, January, 1984.
Takeuchi, A., “How to solve it in Concurrent Prolog,”Unpublished note, 1983.
Takeuchi, A. and Furukawa, K., “Bounded-buffer communication in Concurrent Prolog,”New Generation Computing, Vol. 3, No. 2, pp. 145–155, 1985.
Ueda, K. and Chikayama, T., “Efficient stream/array processing in logic programming languages,”Proc. of FGCS’84, ICOT, pp. 317–326, 1984.
Author information
Authors and Affiliations
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
Received:
Revised:
Issue Date:
DOI: https://doi.org/10.1007/BF03037442