Skip to main content

The Family of Concurrent Logic Programming Languages

  • Conference paper
Logic, Algebra, and Computation

Part of the book series: NATO ASI Series ((NATO ASI F,volume 79))

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.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Ackerman, W.B., Data flow languages, IEEE Computer 15(2), pp.15–25, Feb. 1982.

    Article  Google Scholar 

  2. Aho, A.V., Hopcraft, J.E., and Ullman, J.D., The Design and Analysis of Computer Algorithms, Addison-Wesley, 1974.

    MATH  Google Scholar 

  3. Ahuja, S., Carriero, N., and Gelernter, D., Linda and friends, IEEE Computer 19(8), 26–34, Aug. 1986.

    Article  Google Scholar 

  4. Ali, K.A.M., Or-parallel execution of Prolog on a multi-sequential machine, SICS Technical Report, 1986.

    Google Scholar 

  5. Ali, K.A.M., Or-parallel execution of Horn clause programs based on the WAM and shared control information, SICS Technical Report, 1986.

    Google Scholar 

  6. 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.

    Google Scholar 

  7. Bage, G., and Lindstrom, G., Committed choice functional programming, Proc. International Conference on Fifth Generation Computer Systems, pp. 666–674, ICOT, Tokyo, 1988.

    Google Scholar 

  8. 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.

    Google Scholar 

  9. 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.

    Google Scholar 

  10. 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.

    Google Scholar 

  11. 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.

    Google Scholar 

  12. 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.

    Google Scholar 

  13. Carriero, N., and Gelernter, D., Linda in context, Comm. ACM 32(4), 444–458, 1988.

    Article  Google Scholar 

  14. Chandy, M., and Lamport, L., Distributed snapshots: determining global states of distributed systems, Transactions on Computer Systems 3(1), pp. 63–75, 1985.

    Article  Google Scholar 

  15. 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.

    Chapter  Google Scholar 

  16. Chandy, K.M., and Misra, J., Parallel Program Design, Addison-Wesley, 1988.

    MATH  Google Scholar 

  17. 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.

    Google Scholar 

  18. 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.

    Google Scholar 

  19. Clark, K.L., Predicate logic as a computational formalism, Research Report DOC 79/59, Department of Computing, Imperial College, London, 1979.

    Google Scholar 

  20. 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].

    Google Scholar 

  21. Clark, K.L., and Gregory, S., PARLOG: A parallel logic programming language, Research Report DOC 83/5, Department of Computing, Imperial College, London, 1983.

    Google Scholar 

  22. 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.

    Google Scholar 

  23. 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.

    Article  MATH  Google Scholar 

  24. 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].

    Article  MATH  Google Scholar 

  25. 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.

    Google Scholar 

  26. 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.

    Google Scholar 

  27. 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.

    Google Scholar 

  28. 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.

    Google Scholar 

  29. 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].

    Article  MATH  Google Scholar 

  30. 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.

    Google Scholar 

  31. Colmerauer, A., Opening the Prolog-Ill universe, BYTE Magazine 12(9), August 1987.

    Google Scholar 

  32. Costa, G., and Stirling, C., Weak and strong fairness in CCS, Information and Computation 73, pp.207–244, 1987.

    Article  MATH  MathSciNet  Google Scholar 

  33. 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.

    Google Scholar 

  34. 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.

    Google Scholar 

  35. Davison, A., POLKA: A PARLOG object oriented language, Department of Computing, Imperial College, London, 1988.

    Google Scholar 

  36. DeGroot, D., and Lindstrom, G. (eds.), Logic Programming — Functions, Relations and Equations, Prentice-Hall, New Jersey, 1986.

    Google Scholar 

  37. Dijkstra, E.W, Hierarchical ordering of sequential processes, Acta Informatica 1, 115–138, 1971.

    Article  MathSciNet  Google Scholar 

  38. Dijkstra, E.W., Guarded commands, nondeterminacy, and formal derivation of programs, CACM 18(8), pp. 453–457, 1975.

    MATH  MathSciNet  Google Scholar 

  39. Dijkstra, E.W., A Discipline of Programming, Prentice-Hall, New Jersey, 1976.

    MATH  Google Scholar 

  40. Dijkstra, E.W., and Scholten, C.S., Termination detection for diffusing computations, Information Processing Letters 11(1), pp. 1–4, 1980.

    Article  MATH  MathSciNet  Google Scholar 

  41. 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.

    Article  MATH  Google Scholar 

  42. 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.

    Google Scholar 

  43. 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.

    Google Scholar 

  44. 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.

    Google Scholar 

  45. 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.

    Google Scholar 

  46. Foster, I., Efficient metacontrol in parallel logic programming, Research Report PAR 87/18, Department of Computing, Imperial College, London, 1987.

    Google Scholar 

  47. Foster, I., Parallel implementation of PARLOG, Proc. International Conference of Parallel Processing, 1988.

    Google Scholar 

  48. Foster, I., PARLOG as a Systems Programming Language, Ph.D. Thesis, Department of Computing, Imperial College, London, 1988.

    Google Scholar 

  49. Foster, I., and Taylor, S., Flat Parlog: A basis for comparison, International J. of Parallel Programming 16(2), 1987.

    Google Scholar 

  50. Francez, N., Fairness, Springer-Verlag, 1987.

    Google Scholar 

  51. Francez, N., and Rodeh, M., Achieving distributed termination without freezing, IEEE Transactions on Software Engineering SE-8(3), pp. 359–385, 1982.

    Article  Google Scholar 

  52. 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.

    Article  Google Scholar 

  53. 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.

    Chapter  Google Scholar 

  54. 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.

    Google Scholar 

  55. 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.

    Article  Google Scholar 

  56. 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.

    Google Scholar 

  57. 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.

    Google Scholar 

  58. Futamura, Y., Partial evaluation of computation process — an approach to a compiler-compiler, Systems, Computers, Controls 2(5), pp. 721–728, 1971.

    Google Scholar 

  59. 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.

    Google Scholar 

  60. Gaifman, H., and Shapiro, E., Fully abstract compositional semantics for logic programs, Proc. ACM Symposium on Principles of Programming Languages, pp. 134–142, 1989.

    Google Scholar 

  61. Gaifman, H., and Shapiro, E., Proof Theory and Semantics of Logic Programs, Proc. IEEE Symposium on Logic in Computer Science, 1989.

    Google Scholar 

  62. Gallagher, J., An Approach to the Control of Logic Programs, Ph.D. Thesis, Department of Computer Science, Trinity College, Dublin, 1983.

    Google Scholar 

  63. Gallagher, J., Transforming logic programs by specialising interpreters, Proc. 7 th European Conference on Artificial Intelligence, pp. 109–122, Brighton, 1986.

    Google Scholar 

  64. Gallagher, J., Codish, M., and Shapiro, E., Specialisation of Prolog and FCP programs using abstract interpretation, New Generation Computing 6, pp. 159–186, 1988.

    Article  MATH  Google Scholar 

  65. 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.

    Google Scholar 

  66. Gregory, S., Parallel Logic Programming in PARLOG, Addison-Wesley, 1987.

    Google Scholar 

  67. 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.

    Google Scholar 

  68. 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.

    Article  Google Scholar 

  69. Halstead, R.H., MultiLisp — A language for concurrent symbolic computation, ACM Trans. on Programming Languages and Systems 7(4), pp. 501–538, 1985.

    Article  MATH  Google Scholar 

  70. Harel, D., Algorithmes: The Spirit of Computing, Addison-Wesley, 1987.

    Google Scholar 

  71. 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.

    Google Scholar 

  72. 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.

    Google Scholar 

  73. Harper, R., MacQueen, D., and Milner, R., Standard ML, Technical Report ECS-LFCS-86-2, University of Edinburgh, 1986.

    Google Scholar 

  74. Harsat, A., and Ginosar, R., CARMEL — a VLSI architecture for Flat Concurrent Prolog, EE PUB. Technical Report, Department of Computer Science, Technion, Haifa, 1987.

    Google Scholar 

  75. 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.

    Google Scholar 

  76. 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].

    Article  Google Scholar 

  77. Henderson, P., Purely functional operating systems, in Darlington, J., Henderson, P., and Turner, D. (eds.), Functional Programming and Its Applications, Cambridge University Press, 1982.

    Google Scholar 

  78. Hewitt, C., A universal, modular Actor formalism for artificial intelligence, Proc. International Joint Conference on Artificial Intelligence, 1973.

    Google Scholar 

  79. Hewitt, C., The challenge of open systems, Byte Magazin, pp. 223–242, 1985.

    Google Scholar 

  80. Hill, R., LUSH-resolution and its completeness, DCL Memo 78, Department of Artificial Intelligence, University of Edinburgh, 1974.

    Google Scholar 

  81. Hirata, M., Letter to the editor, SIGPLAN Notices, pp. 16–17, May 1986.

    Google Scholar 

  82. 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.

    Google Scholar 

  83. Hirata, M., Parallel list processing language Oc and its self-description, Computer Software 4(3), pp. 41–64, 1987 (in Japanese).

    Google Scholar 

  84. Hirsch, M., Silverman, W., and Shapiro, E., Computation control and protection in the Logix system, Chapter 20 in [166].

    Google Scholar 

  85. Hoare, C.A.R., Monitors: an operating systems structuring concept, Comm. ACM 17(10), pp. 549–557, 1974.

    Article  MATH  Google Scholar 

  86. Hoare, C.A.R., Communicating sequential processes, Comm. ACM 21(8), pp. 666–677, 1978.

    Article  MATH  MathSciNet  Google Scholar 

  87. Hoare, C.A.R., Communicating Sequential Processes, Prentice-Hall, New Jersey, 1985.

    MATH  Google Scholar 

  88. Hopcroft, J.E., and Ullman, J.D., Introduction to Automata Theory, Languages, and Computation, Addison-Wesley, 1979.

    MATH  Google Scholar 

  89. Houri, A., and Shapiro, E., A sequential abstract machine for Flat Concurrent Prolog, Chapter 38 in [166].

    Google Scholar 

  90. 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.

    Google Scholar 

  91. INMOS Ltd., OCCAM Programming Manual, Prentice-Hall, New Jersey, 1984.

    Google Scholar 

  92. Jaffar, J., and Lassez, J-L., Constraint logic programming, ACM Symposium on Principles of Programming Languages, Munich, 1987.

    Google Scholar 

  93. Johnson, S.D., Circuits and systems: Implementing communications with streams, Technical Report 116, Computer Science Department, Indiana University, 1981.

    Google Scholar 

  94. 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.

    Google Scholar 

  95. Kahn, K., Objects: A fresh look, Proc. European Conference on Object Oriented Programming, Nottingham, July 1989.

    Google Scholar 

  96. 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].

    Google Scholar 

  97. Kahn, K., Silverman, W., and Shapiro, E., Logic programs with implicit variables, unpublished, 1988.

    Google Scholar 

  98. 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.

    Google Scholar 

  99. 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.

    Google Scholar 

  100. 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.

    Google Scholar 

  101. 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.

    Google Scholar 

  102. Kohda, Y., and Tanaka, J., Deriving a compilation method for parallel logic languages, Logic Programming, LNCS 315, pp. 80–94, Springer-Verlag, 1988.

    Google Scholar 

  103. Kowalski, R.A., Logic for Problem Solving, Elsevier, North-Holland, 1979.

    MATH  Google Scholar 

  104. Kung, H.T., Why systolic architectures?, IEEE Computer 15(1), pp. 37–46, 1982.

    Article  Google Scholar 

  105. Kusalik, A.J., Bounded-wait merge in Shapiro’s Concurrent Prolog, New Generation Computing 1(12), pp. 157–169, 1984.

    Article  Google Scholar 

  106. 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.

    Article  Google Scholar 

  107. 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.

    Google Scholar 

  108. Lamport, L., Time, Clocks, and the ordering of events in a distributed system, Communications of the ACM 25, pp. 558–564, July 1978.

    Article  Google Scholar 

  109. 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.

    Google Scholar 

  110. 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.

    Google Scholar 

  111. 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.

    Google Scholar 

  112. 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.

    Google Scholar 

  113. 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.

    Google Scholar 

  114. 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.

    Google Scholar 

  115. Levy, J., Concurrent Prolog and Related Languages, Ph.D. Thesis, Department of Computer Science, The Weizmann Institute of Science, Rehovot, 1988.

    Google Scholar 

  116. 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.

    Google Scholar 

  117. Levy, J., and Shapiro, E., Translation of Safe GHC and Safe Concurrent Prolog to FCP, Chapter 33 in [166].

    Google Scholar 

  118. Levy, J., and Shapiro, E., CFL — A concurrent functional language embedded in a concurrent logic programming environment, Chapter 35 in [166].

    Google Scholar 

  119. 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.

    Google Scholar 

  120. Lichtenstein, Y., Codish, M., and Shapiro, E., Representation and enumeration of Flat Concurrent Prolog computations, Chapter 27 in [166].

    Google Scholar 

  121. 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.

    Google Scholar 

  122. Lloyd, J.W., Foundations of Logic Programming, Second Edition, Springer-Verlag, 1987.

    Book  MATH  Google Scholar 

  123. 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.

    Google Scholar 

  124. 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.

    Google Scholar 

  125. 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.

    Google Scholar 

  126. 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.

    Google Scholar 

  127. Mattern, F., Algorithms for distributed termination detection, Distributed Computing 2, pp. 161–175, 1987.

    Article  Google Scholar 

  128. 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].

    Google Scholar 

  129. 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.

    Google Scholar 

  130. Milner, R., A Calculus of Communicating Systems, LNCS 92, Springer-Verlag, 1980.

    Google Scholar 

  131. Misra, J., Distributed discrete-event simulation, Computing Surveys 18(1), pp. 39–65, 1986.

    Article  Google Scholar 

  132. 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.

    Google Scholar 

  133. Naish, L., MU-Prolog 3.1db Reference Manual, Internal Memorandum, Department of Computer Science, University of Melbourne, 1984.

    Google Scholar 

  134. Nelson, B.J., Remote procedure call, Ph.D. Thesis, Report CMU-CS-81-119, Department of Computer Science, Carnegie-Mellon University, May 1981.

    Google Scholar 

  135. 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.

    Google Scholar 

  136. 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.

    Google Scholar 

  137. 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.

    Google Scholar 

  138. 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.

    Google Scholar 

  139. 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.

    Google Scholar 

  140. 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.

    Google Scholar 

  141. Okumura, A., and Matsumoto, Y., Parallel programming with layered streams, Proc. IEEE Symposium on Logic Programming, pp. 224–231, San Francisco, 1987.

    Google Scholar 

  142. 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.

    Google Scholar 

  143. 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.

    Google Scholar 

  144. 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.

    Chapter  Google Scholar 

  145. 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.

    Google Scholar 

  146. 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.

    Google Scholar 

  147. Ringwood, G.A., Pattern-directed, Markovian, linear, guarded definite clause resolution, Department of Computing, Imperial College, London, 1987.

    Google Scholar 

  148. Ringwood, G.A., PARLOG86 and the dining logicians, CACM 31(1), pp. 10–25, 1988.

    Google Scholar 

  149. Robinson, J.A., A machine oriented logic based on the resolution principle, J. ACM 12(1), pp. 23–41, 1965.

    Article  MATH  Google Scholar 

  150. 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.

    Google Scholar 

  151. Safra, S., and Shapiro, E., Meta-interpreters for real, Information Processing 86, pp. 271–278, North-Holland, 1986. Also Chapter 25 in [166].

    Google Scholar 

  152. 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.

    Google Scholar 

  153. Saraswat, V.A., Problems with Concurrent Prolog, Technical Report CS86-100, Carnegie-Mellon University, 1986.

    Google Scholar 

  154. Saraswat, V.A., Merging many streams efficiently: The importance of atomic commitment, Chapter 16 in [166].

    Google Scholar 

  155. Saraswat, V.A., A compiler of CP(↓,|,&) on top of Prolog, Technical Report CS-87-174, Carnegie-Mellon University, 1987.

    Google Scholar 

  156. 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.

    Google Scholar 

  157. 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.

    Google Scholar 

  158. 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.

    Google Scholar 

  159. Saraswat, V.A., Concurrent Constraint Programming Languages, Ph.D. Thesis, Department of Computer Science, Carnegie-Mellon University, 1989.

    Google Scholar 

  160. 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.

    Google Scholar 

  161. Shapiro, E., Algorithmic Program Debugging, MIT Press, 1983.

    Google Scholar 

  162. 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].

    Google Scholar 

  163. Shapiro, E., Alternation and the computational complexity of logic programs, J. Logic Programming 1(1), pp. 19–33, 1984.

    Article  MATH  MathSciNet  Google Scholar 

  164. Shapiro, E., Concurrent Prolog: A progress report, IEEE Computer 19(8), pp. 44–58, Aug. 1984. Also Chapter 5 in [166].

    Article  Google Scholar 

  165. 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].

    Google Scholar 

  166. Shapiro, E. (Editor), Concurrent Prolog: Collected Papers, Vols. 1 and 2, MIT Press, 1987.

    Google Scholar 

  167. Shapiro, E., Or-parallel Prolog in Flat Concurrent Prolog, Chapter 34 in [166].

    Google Scholar 

  168. 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.

    Google Scholar 

  169. 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].

    Article  MATH  Google Scholar 

  170. 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].

    Article  Google Scholar 

  171. 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].

    Article  Google Scholar 

  172. Silverman, W., Hirsch, M., Houri, A., and Shapiro, E., The Logix system user manual, Version 1.21, Chapter 21 in [166].

    Google Scholar 

  173. Sterling, L.S., and Shapiro, E., The Art of Prolog, MIT Press, 1986.

    MATH  Google Scholar 

  174. 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.

    Google Scholar 

  175. 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.

    Google Scholar 

  176. 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.

    Google Scholar 

  177. Takeuchi, A., How to solve it in Concurrent Prolog, 1983 (unpublished note).

    Google Scholar 

  178. Takeuchi, A., Algorithmic debugging of GHC programs and its implementation in GHC, Chapter 26 in [166].

    Google Scholar 

  179. 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].

    Article  Google Scholar 

  180. 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.

    Google Scholar 

  181. 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.

    Google Scholar 

  182. Tamaki, H., A distributed unification scheme for systolic programs, Proc. International Conference on Parallel Processing, pp. 552–559, 1985.

    Google Scholar 

  183. Tanaka, J., A simple programming system written in GHC and its reflective operations, Proc. Japanese Logic Programming Conference, pp. 143–149, ICOT, Tokyo, 1988.

    Google Scholar 

  184. Tanaka, J., Meta-interpreters and reflective operations in GHC, Proc. International Conference on Fifth Generation Computer Systems, pp. 774–783, ICOT, Tokyo, 1988.

    Google Scholar 

  185. 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.

    Google Scholar 

  186. 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.

    Google Scholar 

  187. Taylor, S., Parallel Logic Programming Techniques, Ph.D. Thesis, Department of Computer Science, The Weizmann Institute of Science, Rehovot, 1988.

    Google Scholar 

  188. 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].

    Google Scholar 

  189. Taylor, S., and Foster, I., Strand Language Reference Manual, Technical Report PAR 88/10, Department of Computing, Imperial College, London, 1988.

    Google Scholar 

  190. 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].

    Google Scholar 

  191. 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].

    Article  Google Scholar 

  192. 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.

    Chapter  Google Scholar 

  193. 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.

    Google Scholar 

  194. 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.

    Google Scholar 

  195. 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].

    Google Scholar 

  196. 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.

    Google Scholar 

  197. Ueda, K., Concurrent Prolog re-examined, ICOT Technical Report TR-102, Institute for New Generation Computer Technology, Tokyo, 1985.

    Google Scholar 

  198. Ueda, K., Guarded Horn Clauses, Ph.D. Thesis, Information Engineering Course, University of Tokyo, Tokyo, 1986.

    Google Scholar 

  199. Ueda, K., Guarded Horn Clauses, in Wada, E. (ed.), Logic Programming, LNCS 221, pp. 168–179, Springer-Verlag, 1986. Also Chapter 4 in [166].

    Google Scholar 

  200. 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.

    Google Scholar 

  201. Ueda, K., Making exhaustive search programs deterministic, New Generation Computing 5(1), pp. 29–44, 1987.

    Article  MATH  Google Scholar 

  202. Ueda, K., Making exhaustive search programs deterministic, Part II, ICOT Technical Report TR-249, Institute for New Generation Computer Technology, Tokyo, 1987.

    Google Scholar 

  203. Ueda, K., Parallelism in logic programming, Proc. IFIP Congress, 1989.

    Google Scholar 

  204. Ueda, K., and Chikayama, T., Concurrent Prolog compiler on top of Prolog, Proc, IEEE Symposium on Logic Programming, pp. 119–126, 1985.

    Google Scholar 

  205. Ueda, K., and Furukawa, K., Transformation rules for GHC programs, Proc. International Conference on Fifth Generation Computer Systems, pp. 582–591, ICOT, Tokyo, 1988.

    Google Scholar 

  206. 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.

    Google Scholar 

  207. Warren, D.H.D., An abstract Prolog instruction set, Technical Report 309, Artificial Intelligence Center, SRI International, 1983.

    Google Scholar 

  208. 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.

    Google Scholar 

  209. 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].

    Google Scholar 

  210. Yang, R., A Parallel Logic Programming Language and Its Implementation, Ph.D. Thesis, Department of Computer Science, Keio University, 1986.

    Google Scholar 

  211. 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.

    Google Scholar 

  212. Yardeni, E., and Shapiro, E., A type system for logic programs, Chapter 28 in [166].

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics