Skip to main content

Concurrent Prolog: A Progress Report

  • Chapter

Part of the book series: Springer Study Edition ((SSE))

Abstract

Concurrent Prolog is a logic programming language designed for concurrent programming and parallel execution. It is a process oriented language, which embodies dataflow synchronization and guarded-command indeterminacy as its basic control mechanisms.

The paper outlines the basic concepts and definition of the language, and surveys the major programming techniques that emerged out of three years of its use. The history of the language development, implementation, and applications to date is reviewed. Details of the performance of its compiler and the functionality of Logix, its programming environment and operating system, are provided.

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.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

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. W.B. Ackerman, “Data flow languages”, IEEE Computer, Vol. 15, No. 2, 1982, pp. 15–25.

    Article  Google Scholar 

  2. Arvind A and J.D. Brock, “Streams and managers”, in M. Makegawa and L.A. Belady (eds.), Operating Systems Engineering, Springer-Verlag, 1982, pp. 452–465. Lecture Notes in Computer Science, No. 143.

    Chapter  Google Scholar 

  3. C. Bloch, “Source to source transformations of logic programs”, Weizmann Institute Technical Report CS84–22, 1984.

    Google Scholar 

  4. D.L. Bowen, L. Byrd, L.M. Pereira, F.C.N. Pereira and D.H.D. Warren, “PROLOG on the DECSystem-10 user’s manual”, Technical Report, University of Edinburgh, Department of Artificial Intelligence, October, 1981.

    Google Scholar 

  5. K. Broda and S. Gregory, “PARLOG for discrete event simulation”, Proceedings of the 2nd International Logic Programming Conference, Uppsala, 1984, pp. 77–312.

    Google Scholar 

  6. K.L. Clark and S. Gregory, “A relational language for parallel programming”, in Proceedings of the ACM Conference on Functional Programming Languages and Computer Architecture, October, 1981.

    Google Scholar 

  7. K.L. Clark and S. Gregory, “PARLOG: Parallel programming in logic”, Research Report DOC 84/4, April, 1984.

    Google Scholar 

  8. K.L. Clark and S. Gregory, “Notes on the implementation of PARLOG”, Research Report DOC 84/16, October, 1984.

    Google Scholar 

  9. K.L. Clark and S.-A. Tarnlund,”A first-order theory of data and programs”, in B. Gilchrist (ed.), Information Processing, Vol. 77, North-Holland, 1977, pp. 939–944.

    Google Scholar 

  10. M. Codish and E. Shapiro, “Compiling Or-parallelism into And-parallelism”, Proceedings of the Third International Conference on Logic Programming, Springer LNCS, July 1986.

    Google Scholar 

  11. S. Edelman and E. Shapiro, “Quadtrees in Concurrent Prolog”, Proceedings of the International Conference on Parallel Processing, IEEE Computer Society, August, 1985, pp. 544–551.

    Google Scholar 

  12. D.P. Friedman and D.S. Wise, “An approach to fair applicative multiprogramming”, in G. Kahn (ed.), Semantics of Concurrent Computations, Springer-Verlag, 1979. Lecture Notes in Computer Science, No. 70.

    Google Scholar 

  13. K. Furukawa, S. Kunifuji, A. Takeuchi and K. Ueda, “The conceptual specification of the Kernel Language version 1”, ICOT Technical Report TR-054, 1985.

    Google Scholar 

  14. K. Furukawa, A. Takeuchi, S. Kunifuji, H. Yasukawa, M. Ohki and K. Ueda, “Mandala: A logic based knowledge programming system”, Proceedings of FGCS ‘84, Tokyo, Japan, 1984, pp. 613–622.

    Google Scholar 

  15. Y. Futamura, “Partial evaluation of computation process — an approach to a compiler-compiler”, Systems, Computers, Controls, Vol. 2, No. 5, 1971, pp. 721–728.

    Google Scholar 

  16. C.C. Green, “Theorem proving by resolution as a basis for question answering”, in B. Meltzer and D. Michie (eds.), Machine Intelligence, Vol. 4, Edinburgh University Press, Edinburgh, 1969, pp. 183–205.

    Google Scholar 

  17. L. Hellerstein, “A Concurrent Prolog based region finding algorithm”, Honors Thesis, Harvard University, Computer Science Department, May, 1984.

    Google Scholar 

  18. L. Hellerstein and E. Shapiro, “Implementing parallel algorithms in Concurrent Prolog: The MAXFLOW experience”, Proceedings of the International Symposium on Logic Programming, Atlantic City, New Jersey, February, 1984.

    Google Scholar 

  19. H. Hirakawa, “Chart parsing in Concurrent Prolog”, ICOT Technical Report TR-008, 1983.

    Google Scholar 

  20. M. Hirsch, W. Silverman and E. Shapiro, “Layers of protection and control in the Logix system”, Weizmann Institute Technical Report CS86-??, 1986.

    Google Scholar 

  21. C.A.R. Hoare, “Monitors: an operating systems structuring concept”, Communications of the ACM, Vol. 17, No. 10, 1974, pp. 549–557.

    Article  MATH  Google Scholar 

  22. C.A.R. Hoare, Communicating Sequential Processes, Prentice-Hall, 1985.

    MATH  Google Scholar 

  23. J.E. Hopcroft and J.D. Ullman, Introduction to automata theory, Languages, and Computation, Addison Wesley, Reading, MA, 1979.

    MATH  Google Scholar 

  24. A. Houri, “An abstract machine for Flat Concurrent Prolog”, M.Sc. Thesis, Weizmann Institute of Science, 1986.

    Google Scholar 

  25. INMOS Ltd., IMS T424 Transputer Reference Manual, INMOS, 1984.

    Google Scholar 

  26. S.D. Johnson, “Circuits and systems: Implementing Communications with streams”, Technical Report 116, Indiana University, Computer Science Department, October, 1981.

    Google Scholar 

  27. G. Kahn and D.B. MacQueen, “Coroutines and networks of parallel processes”, in G. Gilchrist (ed.), Information Processing, Vol. 77, North-Holland, 1977, pp. 993–998.

    Google Scholar 

  28. R.A. Kowalski, Logic for Problem Solving, Elsevier North Holland Inc., 1979.

    MATH  Google Scholar 

  29. H.T. Kung, “Why systolic architectures?”, IEEE Computer, Vol. 15, No. 1, 1982, pp. 37–46.

    Article  Google Scholar 

  30. L. Lamport, “A recursive Concurrent Algorithm”, January, 1982, Unpublished note.

    Google Scholar 

  31. G. Levi and Palamidessi, “The semantics of the read-only variable”, 1985 Symposium on Logic Programming, IEEE Computer Society, July, 1985, pp. 128–137.

    Google Scholar 

  32. J. Levy, “A unification algorithm for Concurrent Prolog”, Proceedings of the Second International Logic Programming Conference, Uppsala, 1984, pp. 333–341.

    Google Scholar 

  33. C. Mierowsky, S. Taylor, E. Shapiro, J. Levy and M. Safra, “The design and implementation of Flat Concurrent Prolog”, Weizmann Institute Technical Report CS85–09, 1985.

    Google Scholar 

  34. R. Milner, A Calculus of Communicating Systems, Lecture Notes in Computer Science, Vol. 92, Springer-Verlag, 1980.

    Book  MATH  Google Scholar 

  35. T. Miyazaki, A. Takeuchi and T. Chikayama, “A sequential implementation of Concurrent Prolog based on the shallow binding scheme”, 1985 Symposium on Logic Programming, IEEE Computer Society, 1985, pp. 110–118.

    Google Scholar 

  36. S. Pappert, Mindstorms: Children, computers, and powerful ideas”, Basic Books, New York, 1980.

    Google Scholar 

  37. F. Pereira, “C-Prolog user’s manual”, EdCAAD, University of Edinburgh, 1983.

    Google Scholar 

  38. Quintus Prolog Reference Manual, Quintus Computer Systems Inc., 1985.

    Google Scholar 

  39. R. Ramakrishnan and A. Silberschatz, “Annotations for Distributed Programming in Logic”, in Conference Record of the Thirteen Annual ACM Symposium on Principles of Programming Languages, January, 1986.

    Google Scholar 

  40. J.A. Robinson, “A machine oriented logic based on the resolution principle”, Journal of the ACM, Vol. 12, January, 1965, pp. 23–41.

    Article  MATH  Google Scholar 

  41. P. Roussel, “Prolog: Manuel reference et d’utilisation”, Technical Report, Groupe d’Intelligence Artificielle, Marseille-Luminy, September, 1975.

    Google Scholar 

  42. V.A. Saraswat, “Problems with Concurrent Prolog”, Carnegie-Mellon University CSD Technical Report CS-86–100, January, 1986.

    Google Scholar 

  43. V.A. Saraswat, “Partial Correctness Semantics for CP[?,|,&]”, Proceedings of the Fifth Conference on Foundations of Software Technology and Theoretical Computer Science, New Delhi, 1985, Springer LNCS 206.

    Google Scholar 

  44. M. Safra, S. Taylor and E. Shapiro, “Distributed Execution of Flat Concurrent Prolog”, To appear as a Weizmann Institute technical report.

    Google Scholar 

  45. S. Safra and E. Shapiro, “Meta-interpreters for real”, to appear in Proceedings of IFIP-86.

    Google Scholar 

  46. A. Shafrir and E. Shapiro, “Distributed programming in Concurrent Prolog”, Weizmann Institute Technical Report CS83–12, August, 1983.

    Google Scholar 

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

    Google Scholar 

  48. E. Shapiro, “Systems programming in Concurrent Prolog”, in Logic Programming and its Applications, D.H.D. Warren and M. van Caneghem (eds.), Ablex, 1986.

    Google Scholar 

  49. E. Shapiro, “A subset of Concurrent Prolog and its interpreter”, ICOT Technical Report TR-003, February, 1983.

    Google Scholar 

  50. E. Shapiro, “Systolic programming: A paradigm of parallel processing”, Proceedings of FGCS ‘84, Ohmsha, Tokyo, 1984. Revised as Weizmann Institute Technical Report CS84–16, 1984.

    Google Scholar 

  51. E. Shapiro and C. Mierowsky, “Fair, biased, and self-balancing merge operators: Their specification and implementation in Concurrent Prolog”, Journal of New Generation Computing, Vol. 2, No. 3, 1984, pp. 221–240.

    Article  MATH  Google Scholar 

  52. E. Shapiro and S. Safra, “Fast multiway merge using destructive operations”, Proceedings of the International Conference on Parallel Processing, IEEE Computer Society, August, 1985, pp. 118–122.

    Google Scholar 

  53. S. Safra, S. Taylor and E. Shapiro, “Distributed Execution of Flat Concurrent Prolog”, To appear as Weizmann Institute technical Report, 1986.

    Google Scholar 

  54. W. Silverman, A. Houri, M. Hirsch and E. Shapiro, “Logix user manual, release 1.1”, Weizmann Institute of Science, 1985.

    Google Scholar 

  55. E. Shapiro and A. Takeuchi, “Object-oriented programming in Concurrent Prolog”, Journal of New Generation Computing, Vol. 1, No. 1, July, 1983.

    Google Scholar 

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

    MATH  Google Scholar 

  57. N. Suzuki, “Experience with specification and verification of complex computer hardware using Concurrent Prolog”, in Logic Programming and its Applications, D.H.D. Warren and M. van Caneghem (eds.), Ablex, 1986.

    Google Scholar 

  58. A. Takeuchi, “How to solve it in Concurrent Prolog”, Unpublished note, 1983.

    Google Scholar 

  59. A. Takeuchi and K. Furukawa, “Interprocess communication in Concurrent Prolog”, Proceedings of the Logic Programming Workshop ‘88, Albufeira, Portugal, June, 1983, pp. 171–185.

    Google Scholar 

  60. A. Takeuchi and K. Furukawa, “Partial evaluation of Prolog programs and its application to meta programming”, ICOT Technical Report TR-126, 1985.

    Google Scholar 

  61. H. Tamaki, “A distributed unification scheme for systolic logic programs”, in Proceedings of the 1985 International Conference on Parallel Processing, pp. 552–559, IEEE, 1985.

    Google Scholar 

  62. J. Tanaka, T. Miyazaki and A. Takeuchi, “A sequential implementation of Concurrent Prolog — based on Lazy Copying scheme”, The 1st National Conference of Japan Society for Software Science and Technology, 1984.

    Google Scholar 

  63. S. Taylor, L. Hellerstein, S. Safra and E. Shapiro “Notes on the Complexity of Systolic Programs”, Weizmann Institute Technical Report CS86-??, 1986.

    Google Scholar 

  64. S. Taylor, E. Av-Ron and E.Y. Shapiro “Virtual Machines for Process and Code Mapping” Weizmann Institute Technical Report CS86-??, 1986.

    Google Scholar 

  65. K. Ueda, “Guarded Horn Clauses”, ICOT Technical Report TR-103, 1985.

    Google Scholar 

  66. K. Ueda, “Concurrent Prolog re-examined”, to appear as ICOT Technical Report.

    Google Scholar 

  67. K. Ueda and T. Chikayama, “Efficient stream/array processing in logic programming languages”, Proceedings of the International Conference on 5th Generation Computer Systems, ICOT, 1984, pp. 317–326.

    Google Scholar 

  68. K. Ueda and T. Chikayama, “Concurrent Prolog compiler on top of Prolog”, 1985 Symposium on Logic Programming, IEEE Computer Society, July, 1985, pp. 119–126.

    Google Scholar 

  69. M.H. van Emden and R.A. Kowalski, “The semantics of predicate logic as a programming language”, Journal of the ACM, Vol. 23, October, 1976, pp. 733–742.

    Article  MATH  Google Scholar 

  70. O. Viner, “Distributed constraint propagation”, Weizmann Institute Technical Report CS84–24, 1984.

    Google Scholar 

  71. D.H.D. Warren, “Logic programming and compiler writing”, Software-Practice and Experience, Vol. 10, 1980, pp. 97–125.

    Article  MATH  Google Scholar 

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

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1987 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Shapiro, E. (1987). Concurrent Prolog: A Progress Report. In: Bibel, W., Jorrand, P. (eds) Fundamentals of Artificial Intelligence. Springer Study Edition. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-662-40145-3_7

Download citation

  • DOI: https://doi.org/10.1007/978-3-662-40145-3_7

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-662-39157-0

  • Online ISBN: 978-3-662-40145-3

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics