SCOOP Structured Concurrent Object Oriented Prolog

  • Jean Vaucher
  • Guy Lapalme
  • Jacques Malenfant
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 322)


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.


Logic Program Logic Programming Message Passing Mutual Exclusion Class Definition 
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.

10. References

  1. [Clar86]
    Clark K. and Gregory S. Parlog: Parallel Programming in Logic, ACM Trans. on Programming Languages and Systems, 8,1 (Jan. 1986), pp. 1–49.zbMATHCrossRefGoogle Scholar
  2. [Chik84]
    Chikayama, T. Unique Features of ESP, Proc. International Conference on Fifth Generation Computer Systems, ICOT, Tokyo, pp. 292–298, (1984).Google Scholar
  3. [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
  4. [Cloc81]
    Clocksin, W. & Mellish, C. Programming in PROLOG, Springer-Verlag, Berlin, (1981).zbMATHGoogle Scholar
  5. [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
  6. [Dah170]
    Dahl, O-J., Myhrhaug, B. & Nygaard, K. (1970). SIMULA Common Base Language, Publication S-22, Norwegian Computing Center, Blindern, OSLO.Google Scholar
  7. [Dah172]
    Dahl, O-J., Dijkstra, E. & Hoare, C.A.R. (1972). Structured Programming, Academic Press, London.zbMATHGoogle Scholar
  8. [Doma86]
    Domán, A. Object-PROLOG: Dynamic Object-Oriented Representation of Knowledge, SzK1 Comp. Research and Innovation Center, 1986, 14 p.Google Scholar
  9. [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
  10. [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
  11. [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
  12. [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
  13. [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
  14. [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
  15. [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
  16. [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
  17. [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
  18. [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
  19. [Shap83]
    Shapiro E. & Takeuchi A., Object oriented programming in concurrent Prolog, New Generation Computing, Vol 1, pp. 25–48, (1983).CrossRefGoogle Scholar
  20. [Shap86]
    Shapiro E. Concurrent Prolog: a Progress Report, Computer, 19,8, pp. 44–54 (Aug. 1986)CrossRefGoogle Scholar
  21. [Stab86]
    Stabler, E.P. Object-Oriented Programming in Prolog, AI Expert, October 1986, pp. 46–57.Google Scholar
  22. [Stef85]
    Stefik M. & Bobrow D., Object-Oriented Programming: Themes and Variations, The AI Magazine, pp. 40–62, (1985).Google Scholar
  23. [Ster86]
    Sterling L. and Shapiro E. The Art of Prolog, MIT Press, 1986.Google Scholar
  24. [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
  25. [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
  26. [Yone87]
    Yonezawa, A. & Yokoro, M. (Editors) Object-Oriented Concurrent Programming, The MIT Press, Cambridge, Mass., (1987).Google Scholar
  27. [Zani84]
    Zaniolo, C. Object-Oriented Programming in PROLOG, Proc. International Symposium on Logic Programming, Atlantic City, IEEE, pp. 265–270, (1984).Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1988

Authors and Affiliations

  • Jean Vaucher
    • 1
  • Guy Lapalme
    • 1
  • Jacques Malenfant
    • 1
  1. 1.INCOGNITO, Dépt. d’Informatique et R.O.Université de MontréalMontréalCanada

Personalised recommendations