SCOOP Structured Concurrent Object Oriented Prolog
SCOOP is an experimental language implemented in Prolog that tries to combine the best of logic, object-oriented and concurrent programming in a structured, natural and efficient manner. SCOOP provides hierarchies of object classes. These objects behave as independent Prolog programs with private databases which can execute goals within other objects.
SCOOP also supports parallel processes, synchronised by the exchange of messages. For simulation, a sequencing set and primitives concerned with simulated time are provided. Thus, SCOOP has the ability to describe structured dynamic systems and to encode knowledge.
The important features of SCOOP are 1) its lexical block structure designed to promote and enforce modularity and to allow verification and optimisation via a compiler, 2) its combination of familiar programming cliches: the concepts of Simula67 for macrostructuring of entities and those of standard Prolog (unification & backtracking) for local behaviour, 3) its provision for parallel activity with a clear distinction between static objects and dynamic processes and 4) its discrete simulation capability.
KeywordsLogic Program Logic Programming Message Passing Mutual Exclusion Class Definition
Unable to display preview. Download preview PDF.
- [Chik84]Chikayama, T. Unique Features of ESP, Proc. International Conference on Fifth Generation Computer Systems, ICOT, Tokyo, pp. 292–298, (1984).Google Scholar
- [Chou87]Chouraki, E. and Dugerdil, Ph. The Inheritance Processes in Prolog: Multiple vertical with point of view and multiple selective with point of view, in GRTC technical paper #GRTCi187bislMars 1987 (CNRS Marseilles).Google Scholar
- [Colm83]Colmerauer, A., Kanoui H. et Van Caneghem M. Prolog, bases théoriques et développements actuels, Techniques et Sciences Informatiques, Vol. 2, N° 4, pp. 271–311, (avril 1983).Google Scholar
- [Dah170]Dahl, O-J., Myhrhaug, B. & Nygaard, K. (1970). SIMULA Common Base Language, Publication S-22, Norwegian Computing Center, Blindern, OSLO.Google Scholar
- [Doma86]Domán, A. Object-PROLOG: Dynamic Object-Oriented Representation of Knowledge, SzK1 Comp. Research and Innovation Center, 1986, 14 p.Google Scholar
- [Fuku86]Fukunaga, K. and Hirose, S. An Experience with a Prolog-based Object-Oriented Language, in Proc. of Object-Oriented Prog. Sys., Lang. and Applic.’ 86 (OOPSLA), ACM Sigplan Notices 21,11 (Nov. 1986), pp. 224–231.Google Scholar
- [Futo86]Futó, Y. and Gergely, T. Logic Programming in Simulation, in Transactions of the Society for Computer Simulation 3,3 (July 1986), pp. 195–216.Google Scholar
- [Kahn82]Kahn, K., Intermission-Actors in Prolog, in Logic Programming, (Eds. Clark, K.L. & Tärnlund, S-A.), Academic Press, London, pp.213–228, (1982).Google Scholar
- [Kahn86]Kahn, K., Tribble, E.D., Miller, M.S. and Bobrow, D.G. Objects in Concurrent Logic Programming Languages, in Proc. of Object-Oriented Prog. Sys., Lung. and Applic.’ 86 (OOPSLA), ACM Sigplan Notices 21,11 (Nov. 1986), pp. 242–257.Google Scholar
- [Lalo87]Lalonde, W.R. A Novel Rule-Based Facility for Smalltalk, in Proceedings of ECOOP’87, Bigre+Globule 54 (Juin 1987). pp. 193–198.Google Scholar
- [Mell86]Mello, P. and Natali, A. Programs as Collections of Communicating Prolog Units, in Proc. of ESOP’ 86, Springer-Verlag Lecture Notes in Comp. Science 213, pp. 274–288.Google Scholar
- [Mell87]Mello, P. and Natali, A. Objects as Communicating Prolog Units, in Proceedings of ECOOP’87, Bigre+Globule 54 (Juin 1987), pp. 233–243.Google Scholar
- [Mizo84]Mizoguchi, F., Ohwada, H. and Katayama, Y. LOOKS: Knowledge Representation System for Designing Expert System in a Logic Programming Framework, in Proceedings of the International Conf. on Fifth Gen. Comp. Sys., 1984, pp. 606–612.Google Scholar
- [Pere84]Pereira L.M. and Nasr R. Delta-Prolog: a Distributed Logic Programming Language, Proc. International Conf. on Fifth Generation Computer Systems, ICOT, Tokyo, pp. 283–291Google Scholar
- [Robi82]Robinson, J.A. & Sibert, E.E., LOGLISP: Motivation, Design and Implementation, in Logic Programming, (Eds. Clark, K.L. & Tärnlund, S-A.), Academic Press, London, pp.299–313, (1982).Google Scholar
- [Stab86]Stabler, E.P. Object-Oriented Programming in Prolog, AI Expert, October 1986, pp. 46–57.Google Scholar
- [Stef85]Stefik M. & Bobrow D., Object-Oriented Programming: Themes and Variations, The AI Magazine, pp. 40–62, (1985).Google Scholar
- [Ster86]Sterling L. and Shapiro E. The Art of Prolog, MIT Press, 1986.Google Scholar
- [Vauc86]Vaucher, J.G. & Lapalme, G., (1986). POOPS: Object-Oriented Programming in Prolog, Pub. N° 565, Département d’informatique et de R.O., Université de Montréal.Google Scholar
- [Vauc87]Vaucher, J.G. & Lapalme, G. Process-oriented simulation in Prolog, SCS Multi-Conference on AI and Simulation, San Diego, Jan. 1987, pp.41–46, (1987), also available as Pub. N° 604, Département d’I.R.O., Univ. de Montréal.Google Scholar
- [Yone87]Yonezawa, A. & Yokoro, M. (Editors) Object-Oriented Concurrent Programming, The MIT Press, Cambridge, Mass., (1987).Google Scholar
- [Zani84]Zaniolo, C. Object-Oriented Programming in PROLOG, Proc. International Symposium on Logic Programming, Atlantic City, IEEE, pp. 265–270, (1984).Google Scholar