Object-oriented computations in logic programming

  • Andrea Omicini
  • Antonio Natali
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 821)


When interpreted as a model for structuring programs and organizing computations, the object-oriented paradigm can be thought as a set of abstractions independent of the host language. By generalizing the notion of object state configuration with respect to that embedded in languages based on assignment, this paper explores a relational approach to object-oriented programming. An object-oriented model based on the notion of object as structured logic theory, is introduced, allowing instance creation and configuration as well as computations with partially configured objects. The model is founded on an abductive framework rooted in the basic class/instance model of O-OP, which reconciles dynamic object creation with the declarative reading of LP. Meta-level constraints provide the computational support for the abstract model based on abduction. A simple first-order logic language implementing this model is presented, along with some examples of object-oriented logic computations dealing with intra- and inter-object constraints and with partially specified instances.


Integration of object-oriented and logic paradigms state configuration partially configured instances abduction meta-level constraints 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    P. Wegner: Dimensions of Object-Based Language Design. Proceedings of OOPSLA '87. ACM, 1987.Google Scholar
  2. 2.
    P. Wegner: Dimensions of Object-Oriented Modeling. IEEE Computer, October 1992, pp. 12–20.Google Scholar
  3. 3.
    C. Zaniolo: Object Oriented Programming in Prolog. In: Proceedings of the International Symposium on Logic Programming, Atlantic City, 1984.Google Scholar
  4. 4.
    H. AÏt-Kaci, R. Nasr: LOGIN: A Logic Programming Language with Built-in Inheritance. Journal of Logic programming, 3(3), 1986, pp. 185–215.CrossRefGoogle Scholar
  5. 5.
    J. Conery: Logical objects. In: Proceedings of the Fifth International Conference and Symposium on Logic Programming. Seattle, 1988.Google Scholar
  6. 6.
    A. Andreoli, R. Pareschi: Lo and Behold! Concurrent Structured Processes. In: Proceedings of OOPLSA'91, 1991.Google Scholar
  7. 7.
    F.G. McCabe: Logic and Objects. London: Prentice Hall International 1992.Google Scholar
  8. 8.
    E. Shapiro, A. Takeuchi: Object Oriented Programming in Concurrent Prolog. New Generation Computing, 1(1), 1983.Google Scholar
  9. 9.
    A. Borning, R. Duisburg, B. Freeman-Benson, A. Kramer, M. Wolf: Constraint Hierarchies. In: Proceedings of OOPLSA'87, 1987, pp. 48–60.Google Scholar
  10. 10.
    B. Freeman-Benson: Kaleidoscope: Mixing Objects, Constraints and Imperative Programming. In: Proceedings of ECOOP/OOPLSA'90, 1990, pp. 77–87.Google Scholar
  11. 11.
    A. Brogi, E. Lamma, P. Mello: Objects in a Logic Programming Framework. In: A. Voronkov (ed.): Logic Programming. Lecture Notes in Artificial Intelligence 592. Berlin: Springer-Verlag 1992, pp. 102–113.Google Scholar
  12. 12.
    L. Monteiro, A. Porto: Contextual Logic Programming. In: G. Levi, M. Martelli (eds.): Proceedings of the 6th International Conference on Logic Programming. Cambridge: The MIT Press 1989.Google Scholar
  13. 13.
    A. Brogi, E. Lamma, P. Mello: A General Framework for Structuring Logic Programs. C.N.R. Technical Report “Progetto Finalizzato Sistemi Informatici e Calcolo Parallelo” 4/1, May 1990.Google Scholar
  14. 14.
    E. Denti, A. Natali, A. Omicini: Moving Prolog Toward Objects. In: E. Tick, G. Succi (eds.): Implementations of Logic Programming Systems. To be published by Kluwer, 1994. pp. 92–104.Google Scholar
  15. 15.
    A. Kakas, R. Kowalski, F. Toni: Abductive Logic Programming. Journal of Logic and Computation, Vol. 2, 1992. pp. 719–770.MathSciNetGoogle Scholar
  16. 16.
    J. Jaffar, M.J. Mahren Constraint Logic Programming: A Survey. In: Ten Years of Logic Programming. Special Issue of the Journal of Logic Programming. New York: Elsevier. To appear.Google Scholar
  17. 17.
    Swedish Institute of Computer Science: SICStus Prolog User's Manual. Kista (Sweden) 1993.Google Scholar
  18. 18.
    A. Natali, A. Omicini: Objects with State in Contextual Logic Programming. In: M. Bruynooghe, J. Penjam (eds.): Programming Language Implementation and Logic Programming. Lecture Notes in Computer Science 714. Berlin: Springer-Verlag 1993, pp. 220–234.Google Scholar
  19. 19.
    M. Bugliesi: A declarative view of inheritance in logic programming. In: K. Apt (ed.): Proceedings of the Joint International Conference and Symposium on Logic Programming. The MIT Press 1992, pp. 113–130.Google Scholar
  20. 20.
    C. Ruggieri, M. Bugliesi. A Prolog Object-Oriented System: an Exercise in Contextual Logic Programming. Proceedings of the 6th Italian Conference on Logic Programming GULP 91, June 12–14,1991, Pisa, Italy.Google Scholar
  21. 21.
    A. Omicini: Integration of Object-Oriented and Logic Programming. Ph.D. Thesis, University of Bologna, Italy.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1994

Authors and Affiliations

  • Andrea Omicini
    • 1
  • Antonio Natali
    • 1
  1. 1.DEISUniversità di BolognaBolognaItaly

Personalised recommendations