Abstract
Concurrent logic languages are high-level programming languages for parallel and distributed systems that offer a wide range of both known and novel concurrent programming techniques. Being logic programming languages, they preserve many advantages of the abstract logic programming model, including the logical reading of programs and computations, the convenience of representing data-structures with logical terms and manipulating them using unification, and the amenability to meta-programming. Operationally, their model of computation consists of a dynamic set of concurrent processes, communicating by instantiating shared logical variables, synchronizing by waiting for variables to be instantiated, and making nondeterministic choices, possibly based on the availability of values of variables.
This paper surveys the family of concurrent logic programming languages within a uniform operational framework. It demonstrates the expressive power of even the simplest language in the family, and investigates how varying the basic synchronization and control constructs affect the expressiveness and efficiency of the resulting languages.
In addition, the paper reports on techniques for sequential and parallel implementation of languages in this family, mentions their applications to date, and relates these languages to the abstract logic programming model, to the programming language Prolog, and to other concurrent computational models and programming languages.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Ackerman, W.B., Data flow languages, IEEE Computer 15(2), pp.15–25, Feb. 1982.
Aho, A.V., Hopcraft, J.E., and Ullman, J.D., The Design and Analysis of Computer Algorithms, Addison-Wesley, 1974.
Ahuja, S., Carriero, N., and Gelernter, D., Linda and friends, IEEE Computer 19(8), 26–34, Aug. 1986.
Ali, K.A.M., Or-parallel execution of Prolog on a multi-sequential machine, SICS Technical Report, 1986.
Ali, K.A.M., Or-parallel execution of Horn clause programs based on the WAM and shared control information, SICS Technical Report, 1986.
Alkalaj, L., and Shapiro, E., An architectural model for a Flat Concurrent Prolog processor, in Bowen, K. and Kowalski, R.A. (eds.), Proc. 5 th International Conference Symposium on Logic Programming, pp. 1277–1297, MIT Press, 1988.
Bage, G., and Lindstrom, G., Committed choice functional programming, Proc. International Conference on Fifth Generation Computer Systems, pp. 666–674, ICOT, Tokyo, 1988.
Bahgat, R., and Gregory, S., Pandora: Non-deterministic parallel logic programming, To appear in Proc. 6 th International Conference on Logic Programming, Lisbon, MIT Press, 1989.
de Bakker, J.W., and Kok, J.N., Uniform abstraction, atomicity and contractions in the comparative semantics of Concurrent Prolog, Proc. International Conference on Fifth Generation Computer Systems, pp. 347–355, ICOT, Tokyo, 1988.
Baron, U., Chassin de Kergommeaux, J., Hailperin, M., Ratcliffe, M., Robert, P., Syre, J.-C., and Westphal, H., The parallel ECRC Prolog system PEPSys: An overview and evaluation results, Proc. International Conference on Fifth Generation Computer Systems, pp. 841–850, ICOT, Tokyo, 1988.
Bowen, D.L., Byrd, L., Pereira, L.M., Pereira, F.C.N., and Warren, D.H.D., PROLOG on the DECSystem-10 User’s Manual, Technical Report, Department of Artificial Intelligence, University of Edinburgh, 1981.
Carlsson, M., Freeze, indexing, and other implementation issues in the WAM, in Lassez, J.-L. (ed.), Proc. 4 th International Conference on Logic Programming, pp. 40–58, MIT Press, 1987.
Carriero, N., and Gelernter, D., Linda in context, Comm. ACM 32(4), 444–458, 1988.
Chandy, M., and Lamport, L., Distributed snapshots: determining global states of distributed systems, Transactions on Computer Systems 3(1), pp. 63–75, 1985.
Chandy, K.M., and Misra, J., A paradigm for detecting quiescent properties in distributed computations, in Apt, K.R. (ed.), Logics and Models of Concurrent Systems, pp. 325–342, Springer-Verlag, 1985.
Chandy, K.M., and Misra, J., Parallel Program Design, Addison-Wesley, 1988.
Chikayama, T., and Kimura, Y., Multiple reference management in Flat GHC, in Lassez, J.-L. (ed.), Proc. 4 th International Conference on Logic Programming, pp. 276–293, MIT Press, 1987.
Chikayama, T., Sato, H., and Miyazaki, T., Overview of the parallel inference machine operating system (PIMOS), Proc. International Conference on Fifth Generation Computer Systems, pp. 230–251, ICOT, Tokyo, 1988.
Clark, K.L., Predicate logic as a computational formalism, Research Report DOC 79/59, Department of Computing, Imperial College, London, 1979.
Clark, K.L., and Gregory, S., A relational language for parallel programming, Proc. ACM Conference on Functional Languages and Computer Architecture, pp. 171–178, 1981. Also Chapter 1 in [166].
Clark, K.L., and Gregory, S., PARLOG: A parallel logic programming language, Research Report DOC 83/5, Department of Computing, Imperial College, London, 1983.
Clark, K.L., and Gregory, S., Notes on systems programming in PARLOG, Proc. International Conference on Fifth Generation Computer Systems, pp. 299–306, ICOT, Tokyo, 1984.
Clark, K.L., and Gregory, S., Notes on the implementation of PARLOG, Research Report DOC84/16, 1984. Also in J. Logic Programming 2(1), pp. 17–42, 1985.
Clark, K.L., and Gregory, S., PARLOG: Parallel programming in logic, ACM TOPLAS 8(1), pp. 1–49, 1986. Revised as Chapter 3 in [166].
Clark, K.L., and Gregory, S., PARLOG and PROLOG united, in Lassez, J.-L. (ed.), Proc. 4 th International Conference on Logic Programming, pp. 927–961, MIT Press, 1987.
Clark, K.L., McCabe, F.G., and Gregory, S., IC-PROLOG — language features, in Clark, K.L., and Tärnlund, S.-A. (eds.), Logic Programming, pp. 253–266, Academic Press, London, 1982.
Clark, K.L., and Tärnlund, S.-A., A first-order theory of data and programs, in Gilchrist, B. (ed.), Information Processing 77, pp. 939–944, North-Holland, 1977.
Clocksin, W.R., and Alshawi, H., A method for efficiently executing Horn clause programs using multiple processors, Technical Report, Department of Computer Science, Cambridge University, Cambridge, 1986.
Codish, M., and Shapiro, E., Compiling Or-parallelism into And-parallelism, New Generation Computing 5(1), pp. 45–61, 1987. Also Chapter 32 in [166].
Codish, M., Gallagher, J., and Shapiro, E., Using safe approximations of fixed points for analysis of logic programs, Proc. META88, Workshop on Meta-Programming in Logic Programming, Bristol, 1988.
Colmerauer, A., Opening the Prolog-Ill universe, BYTE Magazine 12(9), August 1987.
Costa, G., and Stirling, C., Weak and strong fairness in CCS, Information and Computation 73, pp.207–244, 1987.
Crammond, J., A comparative study of unification algorithms for Or-parallel execution of logic languages, Proc. IEEE International Conference on Parallel Processing, pp. 131–138, 1985.
Crammond, J.A., Implementation of committed choice logic languages on shared memory multiprocessors, Ph.D. Thesis, Department of Computer Science, Heriot-Watt University, May 1988. Also Technical Report PAR 88/4, Department of Computing, Imperial College, London, 1988.
Davison, A., POLKA: A PARLOG object oriented language, Department of Computing, Imperial College, London, 1988.
DeGroot, D., and Lindstrom, G. (eds.), Logic Programming — Functions, Relations and Equations, Prentice-Hall, New Jersey, 1986.
Dijkstra, E.W, Hierarchical ordering of sequential processes, Acta Informatica 1, 115–138, 1971.
Dijkstra, E.W., Guarded commands, nondeterminacy, and formal derivation of programs, CACM 18(8), pp. 453–457, 1975.
Dijkstra, E.W., A Discipline of Programming, Prentice-Hall, New Jersey, 1976.
Dijkstra, E.W., and Scholten, C.S., Termination detection for diffusing computations, Information Processing Letters 11(1), pp. 1–4, 1980.
van Emden, M.H., and Kowalski, R.A., The semantics of predicate logic as a programming language, J. ACM 23(4), pp. 733–742, 1976.
van Emden, M.H., and de Lucena, G.J., Predicate logic as a language for parallel programming, in Clark, K.L., and Tärnlund, S.-A. (eds.), Logic Programming, pp. 189–198, Academic Press, London, 1982.
Ershov, A.P., et al. (eds.), Special Issue: Selected papers from the Workshop on Partial Evaluation and Mixed Computation, 1987, New Generation Computing 6(2,3), 1988.
Falaschi, M., and Levi, G., Finite failures and partial computations in concurrent logic languages, Proc. International Conference on Fifth Generation Computer Systems, pp. 364–373, ICOT, Tokyo, 1988.
Falaschi, M., Levi, G., Martelli, M., and Palamidessi, G., A new declarative semantics for logic languages, in K. Bowen and R.A. Kowalski (eds.), Proc. 5 th International Conference Symposium on Logic Programming, pp. 993–1005, MIT Press, 1988.
Foster, I., Efficient metacontrol in parallel logic programming, Research Report PAR 87/18, Department of Computing, Imperial College, London, 1987.
Foster, I., Parallel implementation of PARLOG, Proc. International Conference of Parallel Processing, 1988.
Foster, I., PARLOG as a Systems Programming Language, Ph.D. Thesis, Department of Computing, Imperial College, London, 1988.
Foster, I., and Taylor, S., Flat Parlog: A basis for comparison, International J. of Parallel Programming 16(2), 1987.
Francez, N., Fairness, Springer-Verlag, 1987.
Francez, N., and Rodeh, M., Achieving distributed termination without freezing, IEEE Transactions on Software Engineering SE-8(3), pp. 359–385, 1982.
Friedman, D.P., and Wise, D.S., Aspects of applicative programming for parallel processing, IEEE Trans. on Computers C-27(4), pp. 289–296, 1978.
Friedman, D.P., and Wise, D.S., An approach to fair applicative multiprogramming, in Kahn, G. (ed.), Semantics of Concurrent Computation, LNCS 70, pp. 203–226, Springer-Verlag, 1979.
Friedman, D.P., and Wise, D.S., An indeterminate constructor for applicative programming, Conference Record 7 th ACM Symposium on Principles of Programming Languages, pp. 245–250, 1980.
Fuchi, K., and Furukawa, K., The role of logic programming in the Fifth Generation Computer Project, New Generation Computing 5(1), pp. 3–28, 1987.
Furukawa, K., and Ueda, K., GHC process fusion by program transformation, Proc. 2 nd Conference on Japan Society of Software Science and Technology, pp. 89–92, 1985.
Furukawa, K., Okumura, A., and Murakami, ML, Unfolding rules for GHC programs, in Bjorner, D. et al. (eds.), Proc. Workshop on Partial and Mixed Computation, Gl. Avernaes, 1987.
Futamura, Y., Partial evaluation of computation process — an approach to a compiler-compiler, Systems, Computers, Controls 2(5), pp. 721–728, 1971.
Gaifman, H., Maher, M.J., and Shapiro, E., Reactive behaviors for concurrent constraint logic languages, in Lusk, E. and Overbeek, R. (eds.), Proc. 1989 North America Conference on Logic Programming, pp. 553–572, MIT Press, 1989.
Gaifman, H., and Shapiro, E., Fully abstract compositional semantics for logic programs, Proc. ACM Symposium on Principles of Programming Languages, pp. 134–142, 1989.
Gaifman, H., and Shapiro, E., Proof Theory and Semantics of Logic Programs, Proc. IEEE Symposium on Logic in Computer Science, 1989.
Gallagher, J., An Approach to the Control of Logic Programs, Ph.D. Thesis, Department of Computer Science, Trinity College, Dublin, 1983.
Gallagher, J., Transforming logic programs by specialising interpreters, Proc. 7 th European Conference on Artificial Intelligence, pp. 109–122, Brighton, 1986.
Gallagher, J., Codish, M., and Shapiro, E., Specialisation of Prolog and FCP programs using abstract interpretation, New Generation Computing 6, pp. 159–186, 1988.
Gerth R., Codish M., Lichtenstein Y., and Shapiro E., Fully abstract denota-tional semantics for Flat Concurrent Prolog, Proc. IEEE Symposium on Logic in Computer Science, pp. 320–333, 1988.
Gregory, S., Parallel Logic Programming in PARLOG, Addison-Wesley, 1987.
Gregory, S., Neely, R., and Ringwood, G.A., PARLOG for specification, verification and simulation, in Koomen, C.J., and Moto-Oka, T. (eds.), Proc. 7 th International Symposium on Computer Hardware Description Languages and their Applications, pp. 139–148, Elsevier/North-Holland, Amsterdam, 1985.
Gregory, S., Foster, I.T., Burt, A.D., and Ringwood, G.A., An abstract machine for the implementation of PARLOG on uniprocessors, New Generation Computing 6(4), 389–420, 1986.
Halstead, R.H., MultiLisp — A language for concurrent symbolic computation, ACM Trans. on Programming Languages and Systems 7(4), pp. 501–538, 1985.
Harel, D., Algorithmes: The Spirit of Computing, Addison-Wesley, 1987.
Harel, D., and Pnueli, A., On the development of reactive systems, in Apt, K.R. (ed.), Logics and Models of Concurrent Systems, Springer Verlag, 1985.
Haridi, S., and Brand, P., ANDORRA Prolog — an integration if Prolog and committed choice languages, Proc. International Conference on Fifth Generation Computer Systems, pp. 745–754, ICOT, Tokyo, 1988.
Harper, R., MacQueen, D., and Milner, R., Standard ML, Technical Report ECS-LFCS-86-2, University of Edinburgh, 1986.
Harsat, A., and Ginosar, R., CARMEL — a VLSI architecture for Flat Concurrent Prolog, EE PUB. Technical Report, Department of Computer Science, Technion, Haifa, 1987.
Harsat, A., and Ginosar, R., CARMEL-2: a second generation VLSI architecture for Flat Concurrent Prolog, Proc. International Conference on Fifth Generation Computer Systems, pp. 962–969, ICOT, Tokyo, 1988.
Hellerstein, L., and Shapiro, E., Implementing parallel algorithms in Concurrent Prolog: The MAXFLOW experience, J. Logic Programming 3(2), pp. 157–184, 1984. Also Chapter 9 in [166].
Henderson, P., Purely functional operating systems, in Darlington, J., Henderson, P., and Turner, D. (eds.), Functional Programming and Its Applications, Cambridge University Press, 1982.
Hewitt, C., A universal, modular Actor formalism for artificial intelligence, Proc. International Joint Conference on Artificial Intelligence, 1973.
Hewitt, C., The challenge of open systems, Byte Magazin, pp. 223–242, 1985.
Hill, R., LUSH-resolution and its completeness, DCL Memo 78, Department of Artificial Intelligence, University of Edinburgh, 1974.
Hirata, M., Letter to the editor, SIGPLAN Notices, pp. 16–17, May 1986.
Hirata, M., Programming language Doc and its self-description, or, X=X is considered harmful, Proc. 3 rd Conference of Japan Society of Software Science and Technology, pp. 69–72, 1986.
Hirata, M., Parallel list processing language Oc and its self-description, Computer Software 4(3), pp. 41–64, 1987 (in Japanese).
Hirsch, M., Silverman, W., and Shapiro, E., Computation control and protection in the Logix system, Chapter 20 in [166].
Hoare, C.A.R., Monitors: an operating systems structuring concept, Comm. ACM 17(10), pp. 549–557, 1974.
Hoare, C.A.R., Communicating sequential processes, Comm. ACM 21(8), pp. 666–677, 1978.
Hoare, C.A.R., Communicating Sequential Processes, Prentice-Hall, New Jersey, 1985.
Hopcroft, J.E., and Ullman, J.D., Introduction to Automata Theory, Languages, and Computation, Addison-Wesley, 1979.
Houri, A., and Shapiro, E., A sequential abstract machine for Flat Concurrent Prolog, Chapter 38 in [166].
Ichiyoshi, N., Miyazaki, T., and Taki, K., A distributed implementation of Flat GHC on the Multi-PSI, in Lassez, J.-L. (ed.), Proc. 4 th International Conference of Logic Programming, pp. 257–275, MIT Press, 1987.
INMOS Ltd., OCCAM Programming Manual, Prentice-Hall, New Jersey, 1984.
Jaffar, J., and Lassez, J-L., Constraint logic programming, ACM Symposium on Principles of Programming Languages, Munich, 1987.
Johnson, S.D., Circuits and systems: Implementing communications with streams, Technical Report 116, Computer Science Department, Indiana University, 1981.
Kahn, G., and MacQueen, D., Coroutines and networks of parallel processes, in Gilchrist, B. (ed.), Information Processing 77, Proc. IFIP Congress, pp. 993–998, North-Holland, 1977.
Kahn, K., Objects: A fresh look, Proc. European Conference on Object Oriented Programming, Nottingham, July 1989.
Kahn, K., Tribble, E.D., Miller, M., and Bobrow, D.G., Vulcan: Logical concurrent objects, in Shriver, B., and Wegner, P. (eds.), Research Directions in Object-Oriented Programming, MIT Press, 1987. Also Chapter 30 in [166].
Kahn, K., Silverman, W., and Shapiro, E., Logic programs with implicit variables, unpublished, 1988.
Kimura, Y., and Chikayama, T., An abstract KL1 machine and its instruction set, Proc. IEEE Symposium on Logic Programming, pp. 468–477, San Francisco, 1987.
Kishimoto, M., et al., An evaluation of the FGHC via practical application programs, ICOT Technical Report TR-232, Institute for New Generation Computer Technology, Tokyo, 1987.
Kliger, S. and Shapiro, E., A decision tree compilation algorithm for FCP(|,:,?), in Bowen, K. and Kowalski, R.A. (eds.), Proc. 5 th International Conference Symposium on Logic Programming, pp. 1315–1336, MIT Press, 1988.
Kliger, S., Yardeni, E., Kahn, K., and Shapiro, E., The language FCP(:,?), Proc. International Conference on Fifth Generation Computer Systems, pp. 763–773, ICOT, Tokyo, 1988.
Kohda, Y., and Tanaka, J., Deriving a compilation method for parallel logic languages, Logic Programming, LNCS 315, pp. 80–94, Springer-Verlag, 1988.
Kowalski, R.A., Logic for Problem Solving, Elsevier, North-Holland, 1979.
Kung, H.T., Why systolic architectures?, IEEE Computer 15(1), pp. 37–46, 1982.
Kusalik, A.J., Bounded-wait merge in Shapiro’s Concurrent Prolog, New Generation Computing 1(12), pp. 157–169, 1984.
Lai, T.H., Termination detection for dynamically distributed systems with non-first-in-first-out communication, J. Parallel and Distributed Computing 3, pp. 577–599, 1986.
Lam, M., and Gregory, S., PARLOG and ALICE: a marriage of convenience, in Lassez, J.-L. (ed.), Proc. 4 th International Conference on Logic Programming, pp. 294–310, MIT Press, 1987.
Lamport, L., Time, Clocks, and the ordering of events in a distributed system, Communications of the ACM 25, pp. 558–564, July 1978.
Lassez, J.-L., Maher, M.J., and Marriot, K., Unification revisited, in J. Minker (ed.), Foundations of Deductive Databases and Logic Programming, pp. 587–626, Morgan Kaufmann, 1987.
Levi, G., Models, unfolding rules and fixpoint semantics, in Bowen, K. and Kowalski, R.A. (eds.), Proc. 5 th International Conference Symposium on Logic Programming, pp. 1649–1665, MIT Press, 1988.
Levi, G., and Palamidessi, C., An approach to the declarative semantics of synchronization in logic languages, in Lassez, J.-L. (ed.), Proc. 4 th International Conference on Logic Programming, pp. 877–893, MIT Press, 1987.
Levi, G., and Sardu, G., Partial evaluation of meta-programs in a multiple world’s logic language, in Bjorner, D., Ershov, A.P. and Jones, N.D. (eds.), Workshop on Partial Evaluation and Mixed Computation, Gl. Avernaes, 1987.
Levy, J., A unification algorithm for Concurrent Prolog, Täxnlund, S.-A. (ed.), Proc. 2 nd International Conference on Logic Programming, pp. 333–341, Uppsala, 1984.
Levy, J., A GHC abstract machine and instruction set, in Shapiro, E. (ed.), Proc. 3 rd International Conference on Logic Programming, LNCS 225, pp. 157–171, Springer-Verlag, 1986.
Levy, J., Concurrent Prolog and Related Languages, Ph.D. Thesis, Department of Computer Science, The Weizmann Institute of Science, Rehovot, 1988.
Levy, J., and Friedman, N., Concurrent Prolog implementations — two new schemes, Technical Report CS86-13, Department of Computer Science, The Weizmann Institute of Science, Rehovot, 1986.
Levy, J., and Shapiro, E., Translation of Safe GHC and Safe Concurrent Prolog to FCP, Chapter 33 in [166].
Levy, J., and Shapiro, E., CFL — A concurrent functional language embedded in a concurrent logic programming environment, Chapter 35 in [166].
Lichtenstein, Y., and Shapiro, E., Concurrent algorithmic debugging, Proc. ACM Workshop on Parallel Debugging. Also Technical Report CS87-20, Department of Computer Science, The Weizmann Institute of Science, Rehovot, 1987.
Lichtenstein, Y., Codish, M., and Shapiro, E., Representation and enumeration of Flat Concurrent Prolog computations, Chapter 27 in [166].
Lichtenstein, Y. and Shapiro, E., Abstract algorithmic debugging, in Bowen, K. and Kowalski, R.A. (eds.), Proc. 5 th International Conference and Symposium on Logic Programming, pp. 1315–1336, MIT Press, 1988.
Lloyd, J.W., Foundations of Logic Programming, Second Edition, Springer-Verlag, 1987.
Lusk, E., Butler, R., Disz, T., Olson, R., Overbeek, R., Stevens, R., Warren, D.H.D, Calderwood, A., Szeredi, P., Haridi, S., Brand, P., Carlsson, M., Ciepielewski, A., and Hausman, B., The Aurora Or-Parallel Prolog system, Proc. International Conference on Fifth Generation Computer Systems, pp. 819–830, ICOT, Tokyo, 1988.
Maher, M.J., Equivalences of logic programs, in J. Minker (ed.), Foundations of Deductive Databases and Logic Programming, pp. 627–658, Morgan Kaufmann Publishers, Los Altos, 1987.
Maher, M.J., Logic semantics for a class of committed-choice programs, in Lassez, J.-L. (ed.), Proc. 4 th International Conference on Logic Programming, pp. 858–876, MIT Press, 1987.
Manna, Z., and Pnueli, A., Specification and verification of concurrent programs by V-automata, Report STAN-CS-88-1230, Department of Computer Science, Stanford University, Stanford, 1988.
Mattern, F., Algorithms for distributed termination detection, Distributed Computing 2, pp. 161–175, 1987.
Miyazaki, T., Takeuchi, A., and Chikayama, T., A sequential implementation of Concurrent Prolog based on the shallow binding scheme, IEEE Symposium on Logic Programming pp. 110–118, 1985. Also Chapter 37 in [166].
Mierowsky, C., Taylor, S., Shapiro, E., Levy, J., and Safra, S., The design and implementation of Flat Concurrent Prolog, Technical Report CS85-09, Department of Computer Science, The Weizmann Institute of Science, Rehovot, 1985.
Milner, R., A Calculus of Communicating Systems, LNCS 92, Springer-Verlag, 1980.
Misra, J., Distributed discrete-event simulation, Computing Surveys 18(1), pp. 39–65, 1986.
Murakami, M., A declarative semantics of parallel logic programs with perpetual processes, Proc. International Conference on Fifth Generation Computer Systems, pp. 374–381, ICOT, Tokyo, 1988.
Naish, L., MU-Prolog 3.1db Reference Manual, Internal Memorandum, Department of Computer Science, University of Melbourne, 1984.
Nelson, B.J., Remote procedure call, Ph.D. Thesis, Report CMU-CS-81-119, Department of Computer Science, Carnegie-Mellon University, May 1981.
Nilsson, M., and Tanaka, H., Fleng Prolog — The language which turns supercomputers into Prolog machines, in Wada, E. (ed.), Proc. Japanese Logic Programming Conference, pp. 209–216, ICOT, Tokyo, 1986. Proceedings also published as Springer LNCS 264.
Nilsson, M., and Tanaka, H., The art of building a parallel logic programming system or from zero to full GHC in ten pages, in Wada, E. (ed.), Proc. Japanese Logic Programming Conference, pp. 155–163, ICOT, Tokyo, 1987. Proceedings also to appear as Springer LNCS.
Nilsson, M., and Tanaka, H., Massively parallel implementation of Flat GHC on the connection machine, Proc. International Conference on Fifth Generation Computer Systems, pp. 1031–1040, ICOT, Tokyo, 1988.
Nilsson, M., and Tanaka, H., A Flat GHC implementation for supercomputers, in Bowen, K. and Kowalski, R.A. (eds.), Proc. 5 th International Conference Symposium on Logic Programming, pp. 1337–1350, MIT Press, 1988.
Ohki, M., et al., An object-oriented programming language based on a parallel logic programming language KL1, ICOT Technical Report TR-222, Institute for New Generation Computer Technology, Tokyo; 1987.
Okabe, Y., and Yajima, S., Parallel computational complexity of logic programs and alternating turing machines, Proc. International Conference on Fifth Generation Computer Systems, pp. 356–363, ICOT, Tokyo, 1988.
Okumura, A., and Matsumoto, Y., Parallel programming with layered streams, Proc. IEEE Symposium on Logic Programming, pp. 224–231, San Francisco, 1987.
Pereira, L.M., and Nasr, R., Delta-Prolog: a distributed logic programming language, Proc. International Conference on Fifth Generation Computer Systems, pp. 283–291, ICOT, Tokyo, 1984.
Picca, R., Bellone, J., and Levy, J., Or-parallel And-interleaving execution of Concurrent Prolog, Technical Report CS87-07, Department of Computer Science, The Weizmann Institute of Science, Rehovot, 1987.
Pnueli, A., Applications of temporal logic to the specification and verification of reactive systems: A survey of current trends, in de Bakker, J.W., de Roever, W.P., and Rozenberg, G. (eds.), Current Trends in Concurrency, Overviews and Tutorials, LNCS 224, pp. 510–584, Springer-Verlag, 1986.
Ramakrishnan, R., and Silberschatz, A., Annotations for distributed programming in logic, Conference Record 13 en ACM Symposium on Principles of Programming Languages, pp. 255–262, 1986.
Reches, E., Gudes, E., and Shapiro, E., Parallel access to a distributed database and its implementation in Flat Concurrent Prolog, Technical Report CS88-11, Department of Computer Science, The Weizmann Institute of Science, Rehovot, 1988.
Ringwood, G.A., Pattern-directed, Markovian, linear, guarded definite clause resolution, Department of Computing, Imperial College, London, 1987.
Ringwood, G.A., PARLOG86 and the dining logicians, CACM 31(1), pp. 10–25, 1988.
Robinson, J.A., A machine oriented logic based on the resolution principle, J. ACM 12(1), pp. 23–41, 1965.
Safra, S., Partial Evaluation of Concurrent Prolog and Its Implications, M.Sc. Thesis, Technical Report CS86-24, Department of Computer Science, The Weizmann Institute of Science, Rehovot, 1986.
Safra, S., and Shapiro, E., Meta-interpreters for real, Information Processing 86, pp. 271–278, North-Holland, 1986. Also Chapter 25 in [166].
Saraswat, V.A., Partial correctness semantics for CP[↓,|,&], Proc. 5 th Conference on Foundations of Software Technology and Theoretical Computer Science, LNCS 206, pp. 347–368, New Delhi, 1985.
Saraswat, V.A., Problems with Concurrent Prolog, Technical Report CS86-100, Carnegie-Mellon University, 1986.
Saraswat, V.A., Merging many streams efficiently: The importance of atomic commitment, Chapter 16 in [166].
Saraswat, V.A., A compiler of CP(↓,|,&) on top of Prolog, Technical Report CS-87-174, Carnegie-Mellon University, 1987.
Saraswat, V.A., The concurrent logic programming language CP: Definition and operational semantics, Proc. ACM Symposium on Principles of Programming Languages, pp. 49–63, 1987.
Saraswat, V.A., The language GHC: Operational semantics, problems and relationship with CP[↓,|], Proc. IEEE Symposium on Logic Programming, pp. 347–358, San Francisco, 1987.
Saraswat, V.A., A somewhat logical formulation of CLP synchronization primitives, in Bowen, K. and Kowalski, R.A. (eds.), Proc. 5 th International Conference Symposium on Logic Programming, pp. 1298–1314, MIT Press, 1988.
Saraswat, V.A., Concurrent Constraint Programming Languages, Ph.D. Thesis, Department of Computer Science, Carnegie-Mellon University, 1989.
Saraswat, V.A., Weinbaum, D., Kahn, K., and Shapiro, E., Detecting stable properties of networks in concurrent logic programming languages, Proc. ACM Conference on Principles of Distributed Computing, pp. 210–222, Aug. 1988.
Shapiro, E., Algorithmic Program Debugging, MIT Press, 1983.
Shapiro, E., A subset of Concurrent Prolog and its interpreter, ICOT Technical Report TR-003, Institute for New Generation Computer Technology, Tokyo, 1983. Also chapter 2 in [166].
Shapiro, E., Alternation and the computational complexity of logic programs, J. Logic Programming 1(1), pp. 19–33, 1984.
Shapiro, E., Concurrent Prolog: A progress report, IEEE Computer 19(8), pp. 44–58, Aug. 1984. Also Chapter 5 in [166].
Shapiro, E., Systolic programming: A paradigm of parallel processing, Proc. International Conference on Fifth Generation Computer Systems, pp. 458–471, 1984. Also Chapter 7 in [166].
Shapiro, E. (Editor), Concurrent Prolog: Collected Papers, Vols. 1 and 2, MIT Press, 1987.
Shapiro, E., Or-parallel Prolog in Flat Concurrent Prolog, Chapter 34 in [166].
Shapiro, E., Embedding Linda and other joys of concurrent logic programming, Technical Report CS89-07, Department of Computer Science, The Weizmann Institute of Science, Rehovot, 1989.
Shapiro, E., and Mierowsky, C., Fair, biased, and self-balancing merge operators: Their specification and implementation in Concurrent Prolog, New Generation Computing 2(3), pp. 221–240, 1984. Also Chapter 14 in [166].
Shapiro, E., and Safra, S., Multiway merge with constant delay in Concurrent Prolog, New Generation Computing 4(2), pp. 211–216, 1986. Also Chapter 15 in [166].
Shapiro, E., and Takeuchi, A., Object-oriented programming in Concurrent Prolog, New Generation Computing 1(1), pp. 25–49, 1983. Also Chapter 29 in [166].
Silverman, W., Hirsch, M., Houri, A., and Shapiro, E., The Logix system user manual, Version 1.21, Chapter 21 in [166].
Sterling, L.S., and Shapiro, E., The Art of Prolog, MIT Press, 1986.
Suzuki, N., Experience with specification and verification of complex computer using Concurrent Prolog, in Warren, D.H.D, and van Caneghem, M. (eds.), Logic Programming and Its Applications, pp. 188–209, Ablex Pub. Co., New Jersey, 1986.
Szöke, D., Distributed Flat Concurrent Prolog on a Network Architecture, M.Sc. Thesis, Department of Computer Science, The Weizmann Institute of Science, Rehovot, 1987.
Takeda, Y., Nakashima, H., Masuda, K., Chikayama, T., and Taki, K., A load balancing mechanism for large scale multiprocessor systems and its implementation, Proc. International Conference on Fifth Generation Computer Systems, pp. 978–986, ICOT, Tokyo, 1988.
Takeuchi, A., How to solve it in Concurrent Prolog, 1983 (unpublished note).
Takeuchi, A., Algorithmic debugging of GHC programs and its implementation in GHC, Chapter 26 in [166].
Takeuchi, A., and Furukawa, K., Bounded-buffer communication in Concurrent Prolog, New Generation Computing 3(2), pp. 145–155, 1985. Also Chapter 18 in [166].
Takeuchi, A., and Furukawa, K., Partial evaluation of Prolog programs and its application to meta-programming, Information Processing 86, pp. 415–420, North-Holland, 1986.
Takeuchi, A., et al., A description language with AND/OR parallelism for concurrent systems and its stream-based realization, ICOT Technical Report TR-229, Institute for New Generation Computer Technology, Tokyo, 1987.
Tamaki, H., A distributed unification scheme for systolic programs, Proc. International Conference on Parallel Processing, pp. 552–559, 1985.
Tanaka, J., A simple programming system written in GHC and its reflective operations, Proc. Japanese Logic Programming Conference, pp. 143–149, ICOT, Tokyo, 1988.
Tanaka, J., Meta-interpreters and reflective operations in GHC, Proc. International Conference on Fifth Generation Computer Systems, pp. 774–783, ICOT, Tokyo, 1988.
Tanaka, J., Ueda, K., Miyazaki, T., Takeuchi, A., Matsumoto, Y., and Furukawa, K., Guarded Horn clauses and experiences with parallel logic programming, Proc. FJCC ACM, pp. 948–954, Dallas, 1986.
Taylor, H., Localizing the GHC suspension test, in Bowen, K. and Kowalski, R.A. (eds.), Proc. 5 th International Conference Symposium on Logic Programming, pp. 1257–1271, MIT Press, 1988.
Taylor, S., Parallel Logic Programming Techniques, Ph.D. Thesis, Department of Computer Science, The Weizmann Institute of Science, Rehovot, 1988.
Taylor, S., Av-Ron, E., and Shapiro, E., A layered method for process and code mapping, J. New Generation Computing 5(2), 1987. Also Chapter 22 in [166].
Taylor, S., and Foster, I., Strand Language Reference Manual, Technical Report PAR 88/10, Department of Computing, Imperial College, London, 1988.
Taylor, S., Hellerstein, L., Safra, S., and Shapiro, E., Notes on the complexity of systolic programs, J. Parallel and Distributed Computing 4(3), 1987. Also Chapter 8 in [166].
Taylor, S., Safra, S., and Shapiro E., A parallel implementation of Plat Concurrent Prolog, J. Parallel Programming 15(3), pp. 245–275, 1987. Also Chapter 39 in [166].
Taylor, S., Shapiro, R., and Shapiro, E., FCP: A summary of performance results, in Fox, G. (ed.), Proc. 3 rd Conference on Hypercube Concurrent Computers and Applications, pp. 1364–1373, ACM Press, 1988.
Taylor, S., and Shapiro, E., An improved parallel algorithm for Flat Concurrent Prolog, Technical Report CS88-09, Department of Computer Science, The Weizmann Institute of Science, Rehovot, 1988.
Tick, E., A performance comparison of And- and Or-parallel logic programming architectures, ICOT Technical Report TR-421, Institute for New Generation Computer Technology, Tokyo, 1988.
Tribble, E.D., Miller, M.S., Kahn, K., Bobrow, D.G. and Abbott, C., Channels: A generalization of streams, in Lassez, J.-L. (ed.), Proc. 4 th International Conference of Logic Programming, pp. 839–857, MIT Press, 1987. Also Chapter 17 in [166].
Uchida, S., Taki, K., Nakashima, K., Goto, A., and Chikayama, T., Research and development of the parallel inference system in the intermediate stage of the FGCS project, Proc. International Conference on Fifth Generation Computer Systems, pp. 16–36, ICOT, Tokyo, 1988.
Ueda, K., Concurrent Prolog re-examined, ICOT Technical Report TR-102, Institute for New Generation Computer Technology, Tokyo, 1985.
Ueda, K., Guarded Horn Clauses, Ph.D. Thesis, Information Engineering Course, University of Tokyo, Tokyo, 1986.
Ueda, K., Guarded Horn Clauses, in Wada, E. (ed.), Logic Programming, LNCS 221, pp. 168–179, Springer-Verlag, 1986. Also Chapter 4 in [166].
Ueda, K., Guarded Horn Clauses: A parallel logic programming language with the concept of a guard, ICOT Technical Report TR-208, Institute for New Generation Computer Technology, Tokyo, 1986 (revised in 1987). Also in Nivat, M., and Fuchi, K. (eds.), Programming of Future Generation Computers, pp. 441–456, North-Holland, 1988.
Ueda, K., Making exhaustive search programs deterministic, New Generation Computing 5(1), pp. 29–44, 1987.
Ueda, K., Making exhaustive search programs deterministic, Part II, ICOT Technical Report TR-249, Institute for New Generation Computer Technology, Tokyo, 1987.
Ueda, K., Parallelism in logic programming, Proc. IFIP Congress, 1989.
Ueda, K., and Chikayama, T., Concurrent Prolog compiler on top of Prolog, Proc, IEEE Symposium on Logic Programming, pp. 119–126, 1985.
Ueda, K., and Furukawa, K., Transformation rules for GHC programs, Proc. International Conference on Fifth Generation Computer Systems, pp. 582–591, ICOT, Tokyo, 1988.
Vasey, P., Qualified answers and their application to transformation, in Shapiro, E. (ed.), Proc. 3 rd International Conference on Logic Programming, LNCS 225, pp. 425–432, Springer-Verlag, 1986.
Warren, D.H.D., An abstract Prolog instruction set, Technical Report 309, Artificial Intelligence Center, SRI International, 1983.
Warren, D.H.D., The SRI model for Or-parallel execution of Prolog — abstract design and implementation, Proc. IEEE Symposium on Logic Programming, pp. 92–102, San Francisco, 1987.
Weinbaum, D., and Shapiro, E., Hardware description and simulation using Concurrent Prolog, Proc. CHDL ‘87, pp. 9–27, Elsevier Science Publishing, 1987. Also Chapter 36 in [166].
Yang, R., A Parallel Logic Programming Language and Its Implementation, Ph.D. Thesis, Department of Computer Science, Keio University, 1986.
Yang, R., and Aiso, H., P-Prolog: a parallel logic language based on exclusive relation, in Shapiro, E. (ed.), Proc. 3 rd International Conference on Logic Programming, LNCS 225, pp. 255–269, Springer-Verlag, 1986.
Yardeni, E., and Shapiro, E., A type system for logic programs, Chapter 28 in [166].
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1991 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Shapiro, E. (1991). The Family of Concurrent Logic Programming Languages. In: Bauer, F.L. (eds) Logic, Algebra, and Computation. NATO ASI Series, vol 79. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-76799-9_10
Download citation
DOI: https://doi.org/10.1007/978-3-642-76799-9_10
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-76801-9
Online ISBN: 978-3-642-76799-9
eBook Packages: Springer Book Archive