Abstract
Concurrent Prolog is a logic-based parallel programming language which was designed and implemented experimentally in Prolog by E. Shapiro. In this paper, we examine the expressive power of communication mechanism based on shared logical variables and show that the language can express both unbounded buffer and bounded buffer stream communication only by shared logical variables and read-only annotation. We will also present the abstraction technique which hides buffer control such as unbounded and bounded inside stream operations and makes it invisible from user programs.
Similar content being viewed by others
References
Shapiro, E. Y., “A Subset of Concurrent Prolog and Its Interpreter,”ICOT Technical Report, TR-003, 1983.
Clark, K. L. and Gregory, S., “A Relational Language for Parallel Programming,”Proceedings of the ACM Conference on Functional Programming Languages and Computer Architecture, 1981.
Clark, K. L. and Gregory, S., “PARLOG: Parallel Programming in Logic,”Research Report, DOC 84/4, April, 1984.
Takeuchi, A. and Furukawa, K., “Interprocess Communication in Concurrent Prolog,”Proceedings of Logic Programming Workshop ’83, Albufeira Portugal, 1983.
Hellerstein, L. and Shapiro, E., “Implementing Parallel Algorithm in Concurrent Prolog: The MAXFLOW Experience,”1984 International Symposium on Logic Programming, Atlantic City, 1984.
Shapiro, E. and Mierowski, C., “Fair, Biased and Self-Balancing Merge Operators: Their Specification and Implementation in Concurrent Prolog,”New Generation Computing,Vol. 2,No. 3, 1984.
van Emden, M. H. and de Lucena, G. J., “Predicate logic as a programming language for parallel programming,” inLogic Programming (K. L. Clark, S. Å. Tärnlund, eds.), Academic Press, 1982.
Author information
Authors and Affiliations
About this article
Cite this article
Takeuchi, A., Furukawa, K. Bounded buffer communication in Concurrent Prolog. NGCO 3, 145–155 (1985). https://doi.org/10.1007/BF03037066
Received:
Revised:
Issue Date:
DOI: https://doi.org/10.1007/BF03037066