Concepts for a modular and distributed Prolog language

  • Szabolcs Ferenczi
Session: Modular Logic Programming
Part of the Lecture Notes in Computer Science book series (LNCS, volume 528)


The paper introduces new language concepts for building modular and distributed Prolog programs. The language concepts are synthesized from the analysis of the language concept of Distributed Processes and in parts from the concepts of Object Oriented Programming, while Prolog serves also as an implementation language. In this concept, a Prolog program is solved by a number of communicating Prolog objects. Each object can have an own initial goal. Objects communicate by remote predicate calls. A remote predicate call results in an additional Prolog thread at the target object to prove the goal. Consequently, objects execute multiple Prolog programs in an interleaved manner. A general form of Prolog data base operations is proposed for communication of concurrently evaluating Prolog programs in the internal scope of an object. Non-determinism arising from concurrency is handled by help of an adapted form of the Guarded Commands concept of Dijkstra. A program under execution consists of concurrently acting nested objects while the description of the behaviour of objects is achieved in a modular way.


Concurrent Programming Module Body Prolog Program Language Concept Remote Procedure Call 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. America, P., "POOL-T: A Parallel Object-Oriented Language," in Object-Oriented Concurrent Programming, Massachusetts Institute of Technology, 1987, pp.199–220.Google Scholar
  2. Brinch Hansen, P., The Architecture of Concurrent Programs, Prentice Hall, 1977.Google Scholar
  3. Brinch Hansen, P., "Distributed Processes: A Concurrent Programming Concept," Comm. ACM 21, 11, pp.932–941, Nov. 1978.Google Scholar
  4. Brinch Hansen, P., Programming a Personal Computer, Prentice Hall, 1982.Google Scholar
  5. Clark, K.L., Gregory, S., "PARLOG: parallel programming in logic", ACM TOPLAS 8, 1, (1986), pp.1–49.Google Scholar
  6. Dijkstra, E.W., "Guarded Commands, Nondeterminancy, and Formal Derivation of Programs", Comm. ACM 18, 8, pp.453–457, Aug. 1975.Google Scholar
  7. Dijkstra, E.W., Selected Writings in Computing: A Personal Perspective. Springer-Verlag, 1982.Google Scholar
  8. Foster, I, Taylor, S., Strand: New Concepts in Parallel Programming. Prentice-Hall, Englewood Cliffs, N.J. (1989).Google Scholar
  9. Futó, I., Kacsuk, P., "CS-Prolog on multitransputer systems", Microprocessors and Microsystems, 13, 2, March 1989, pp.103–112.Google Scholar
  10. Hoare, C.A.R., "Towards a Theory of Parallel Programming," in Operating Systems Techniques, Ed: C.A.R. Hoare and R.H. Perrot, Academic Press, 1972, pp.61–71.Google Scholar
  11. Hoare, C.A.R., "Communicating Sequential Processes", Comm. ACM 21, 8, pp.666–677, Aug. 1978.Google Scholar
  12. Kacsuk, P., Futó, I., Ferenczi, Sz., "Implementing CS-Prolog on a communicating process architecture," Journal of Microcomputer Applications, 13, (1990), pp.19–41.Google Scholar
  13. Pereira, L.M., Monteiro, L., Cunha, J., Aparicio, J.N., "Delta Prolog: A Distributed Backtracking Extension with Events," Third International Conference on Logic Programming, London, UK, July 1986, Proceedings, Also in Lecture Notes in Computer Science 225, Springer-Verlag, 1986.Google Scholar
  14. Shapiro, E., "Concurrent Prolog: a progress report," IEEE Computer, 19, 8, (1986), pp.44–58.Google Scholar
  15. Shizgal, I., "The Amoeba-Prolog System," The Computer Journal, 33, 6, Dec. 1990, pp.508–517.Google Scholar
  16. Ueda, K., "Guarded Hom Clauses" In Logic Programming 85, Lecture Notes in Computer Science 221, Springer-Verlag, Heidelberg 1986, pp.168–179.Google Scholar
  17. Vaucher, J, Lapalme, G., Malenfant, J., "SCOOP, Structured Concurrent Object Oriented Prolog," European Conference on Object-Oriented Programming, Oslo, Norway, August 15–17, 1988, Proceedings; Lecture Notes in Computer Science 322, Springer-Verlag, 1988, (eds:S. Gjessing, K.Nygaard)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1991

Authors and Affiliations

  • Szabolcs Ferenczi
    • 1
  1. 1.Multilogic Computing Ltd.BudapestHungary

Personalised recommendations