Abstract
Flat Concurrent Prolog is a simple, practical, concurrent programming language which has an efficient uniprocessor implementation. This paper describes an initial parallel implementation of the language; it consists of an interpreter implemented on an Intel iPSC Hypercube. The parallel execution of concurrent logic programming languages involves many nontrivial implementation problems. Some of these problems are well known and have been treated extensively in the literature. The most difficult task is to integrate problem solutions in a coherent and efficient manner. The algorithm presented has been useful in providing insights into the major problems and includes a number of novel ideas to simplify implementation. It does not attempt to solve all the problems involved but rather provides a workable basis for current and future research. The algorithm is under ongoing refinement, simplification and improvement.
Similar content being viewed by others
References
W. B. Ackerman, Data Flow Languages,Computer 15(2):15–25 (February 1982).
S. Safra and E. Shapiro, Meta-Interpreters for Real,Proceedings of IFIP (to appear).
S. Taylor, E. Av-Ron, and E. Shapiro, A Layered Method for Process and Code Mapping, Journal of New Generation Computing (in press).
S. Safra, Partial Evaluation of Concurrent Prolog and Its Implications, CS86-24, Weizmann Institute of Science (July 1986).
A. Houri and E. Shapiro, An Abstract Machine for Flat Concurrent Prolog,Tech. Rep. CS86-20, Weizmann Institute of Science (July 1986).
E. Shapiro, Systolic Programming: A Paradigm for Parallel Processing,Proc. of Intl. Conf. on Fifth Generation Computer Systems, pp. 458–471 (November 1984).
S. Taylor, L. Hellerstein, S. Safra, and E. Shapiro, Notes on the Complexity of Systolic Programs,Journal of Parallel and Distributed Computing (in press).
H. T. Kung, Why Systolic Architectures?IEEE Computer 15:39 (January 1982).
C. Mierowsky, S. Taylor, E. Shapiro, J. Levy, and S. Safra, The Design and Implementation of Flat Concurrent Prolog, Dept. of Computer Science, Weizmann Institute of Science, Rehovot, Isreal, Technical Report CS85-09 (July 1985).
J. D. Ullman,Principles of Database Systems, Computer Science Press, Maryland (1982).
E. G. Coffman and P. J. Denning,Operating Systems Theory, Prentice-Hall, Englewood Cliffs, New Jersey (1973).
J. W. Havender, Avoiding Deadlock in Multitasking Systems,IBM Systems Journal 7(2):74–84 (1968).
K. S. Weng, Stream-oriented Computation in Recursive Data Flow Schemes,” MIT Cambridge, MA., Techn. Rep. MTMM-68 (October 1975).
R. M. Keller and G. Lindstrom, Applications of Feedback in Functional Programming, Conference on Functional Languages and Computer Architecture, pp. 123–130 (Ocober 1981).
P. C. Treleaven, D. R. Brownbridge, and R. P. Hopkins, Data-driven and demand-driven computer architecture.Computing Surveys 14(1):93–143 (March 1982).
Arvind and R. E. Thomas, I-Structures: An Efficient Data Type for Functional Languages, MIT Laboratory for Computer Science, Tech. Man. TM-178, MIT, Cambridge Mass. (September 1978).
U. Bar-on, A Distributed Implementation of Flat Concurrent Prolog, Weizmann Institute of Science, Department of Applied Mathematics, Rehovot, Israel., Masters Thesis (1986).
H. Tamaki, A Distributed Unification Scheme for Systolic Logic Programs,Proc. Intl. Conf. Parallel Processing, pp. 552–559 (August 1985).
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Taylor, S., Safra, S. & Shapiro, E. A parallel implementation of Flat Concurrent Prolog. Int J Parallel Prog 15, 245–275 (1986). https://doi.org/10.1007/BF01414556
Received:
Revised:
Issue Date:
DOI: https://doi.org/10.1007/BF01414556