Abstract
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.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
America, P., "POOL-T: A Parallel Object-Oriented Language," in Object-Oriented Concurrent Programming, Massachusetts Institute of Technology, 1987, pp.199–220.
Brinch Hansen, P., The Architecture of Concurrent Programs, Prentice Hall, 1977.
Brinch Hansen, P., "Distributed Processes: A Concurrent Programming Concept," Comm. ACM 21, 11, pp.932–941, Nov. 1978.
Brinch Hansen, P., Programming a Personal Computer, Prentice Hall, 1982.
Clark, K.L., Gregory, S., "PARLOG: parallel programming in logic", ACM TOPLAS 8, 1, (1986), pp.1–49.
Dijkstra, E.W., "Guarded Commands, Nondeterminancy, and Formal Derivation of Programs", Comm. ACM 18, 8, pp.453–457, Aug. 1975.
Dijkstra, E.W., Selected Writings in Computing: A Personal Perspective. Springer-Verlag, 1982.
Foster, I, Taylor, S., Strand: New Concepts in Parallel Programming. Prentice-Hall, Englewood Cliffs, N.J. (1989).
Futó, I., Kacsuk, P., "CS-Prolog on multitransputer systems", Microprocessors and Microsystems, 13, 2, March 1989, pp.103–112.
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.
Hoare, C.A.R., "Communicating Sequential Processes", Comm. ACM 21, 8, pp.666–677, Aug. 1978.
Kacsuk, P., Futó, I., Ferenczi, Sz., "Implementing CS-Prolog on a communicating process architecture," Journal of Microcomputer Applications, 13, (1990), pp.19–41.
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.
Shapiro, E., "Concurrent Prolog: a progress report," IEEE Computer, 19, 8, (1986), pp.44–58.
Shizgal, I., "The Amoeba-Prolog System," The Computer Journal, 33, 6, Dec. 1990, pp.508–517.
Ueda, K., "Guarded Hom Clauses" In Logic Programming 85, Lecture Notes in Computer Science 221, Springer-Verlag, Heidelberg 1986, pp.168–179.
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)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1991 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Ferenczi, S. (1991). Concepts for a modular and distributed Prolog language. In: Maluszyński, J., Wirsing, M. (eds) Programming Language Implementation and Logic Programming. PLILP 1991. Lecture Notes in Computer Science, vol 528. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-54444-5_96
Download citation
DOI: https://doi.org/10.1007/3-540-54444-5_96
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-54444-9
Online ISBN: 978-3-540-38362-8
eBook Packages: Springer Book Archive