Skip to main content
Log in

Linear objects: Logical processes with built-in inheritance

  • Special Issue
  • Published:
New Generation Computing Aims and scope Submit manuscript

Abstract

We present a new framework for amalgamating two successful programming paradigms: logic programming and object-oriented programming. From the former, we keep the delarative reading of programs. From the latter, we select two crucial notions: (i) the ability for objects to dynamically change their internal state during the computation; (ii) the structured representation of knowledge, generally obtained via inheritance graphs among classes of objects. We start with the approach, introduced in concurrent logic programming languages, which identifies objects with proof processes and object states with arguments occurring in the goal of a given process. This provides a clean, side-effect free account of the dynamic behavior of objects in terms of the search tree—the only dynamic entity in logic programming languages. We integrate this view of objects with an extension of logic programming, which we call Linear Objects, based on the possibility of having multiple literals in the head of a program clause. This contains within itself the basis for a flexible form of inheritance, and maintains the constructive property of Prolog of returning definite answer substitutions as output of the proof of non-ground goals. The theoretical background for Linear Objects is Linear Logic, a logic recently introduced to provide a theoretical basis for the study of concurrency. We also show that Linear Objects can be considered as constructive restriction of full Classical Logic. We illustrate the expressive power of Linear Objects compared to Prolog by several examples from the object-oriented domain, but we also show that it can be used to provide elegant solutions for problems arising in the standard style of logic programming.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Similar content being viewed by others

References

  1. Agha, G. and Hewitt, C., “Actors: A Conceptual Foundation for Concurrent Object-Oriented Programming,” inResearch Directions in Object-Oriented Programming (B. Shriver and P. Wegner, eds.), MIT Press, 1987.

  2. Aït-Kaci, H. and Nasr, R., “LOGIN: A Logic Programming Language with Built-in Inheritance,”Journal of Logic Programming, 3, 3, 1986.

    Article  Google Scholar 

  3. Andreoli, J. M., “Proposition pour une Synthèse des Paradigmes de la Programmation Logique et de la Programmation par Objets,”Ph. D. thesis, Université de Paris VI, Paris, France, 1990.

    Google Scholar 

  4. Andreoli, J. M. and Pareschi R., “Logic Programming with Sequent Systems: A Linear Logic Approach,” inProc. of the Workshop on Extensions of Logic Programming, Lecture Notes in Artificial Intelligence, Tübingen, Germany, Springer-Verlag, 1990.

    Google Scholar 

  5. Andreoli, J. M. and Pareschi, R., “Formulae as Active Representation of Data,” inActes du 9eme Séminaire sur la Programmation en Logique, Trégastel, France, 1990.

  6. Andreoli, J. M. and Pareschi, R., “LO and Behold! Concurrent Structured Processes,” inProc. of OOPSLA/ECOOP’90, Ottawa, Canada, 1990.

  7. Andreoli, J. M. and Pareschi, R, “Communication as Fair Distribution of Knowledge,” inProc. of OOPSLA’91, Phoenix, USA, 1991.

  8. Brogi, A., “And-Parallelism without Shared Variables,” inProc. of the 7th International Conference on Logic Programming, Jerusalem, Israel, 1990.

  9. Chen, W. and Warren, D. S., “C-Logic for Complex Objects,” inProc. of 8th ACM SIGACT-SIGMOD-SIGART Symposium on Principles of Database Systems, Philadelphia, USA, 1989.

  10. Conery, J. S., “Logical Objects,” inProc. of the 5th International Conference on Logic Programming, Seattle, USA, 1988.

  11. Davison, A., “POLKA: A Parlog Object Oriented Language,”Technical Report, DOC, Imperial College, London, UK, 1988.

    Google Scholar 

  12. Gallaire, H., “Merging Objects and Logic Programming: Relational Semantics,” inProc. of AAAI’86, Philadelphia, USA, 1986.

  13. Gallier, J.,Logic for Computer Science, Harper & Row, New York, 1986.

    MATH  Google Scholar 

  14. Giordano, L., Martelli, A., and Rossi, G. F., “Local Definitions with Static Scope Rules in Logic Programming,” inProc. of the International Conference on Fifth Generation Computer Systems, Tokyo, Japan, 1988.

  15. Girard, J. Y., “Linear Logic,”Theoretical Computer Science, 50, 1987.

  16. Goguen, J. A. and Meseguer, J., “Equality, Types, Modules, and (Why Not?) Generics for Logic Programming,”Journal of Logic Programming, 2, 1984.

  17. Gregory, S.,Parallel Logic Programming in Parlog, Addison-Wesley, 1987.

  18. Hodas, J. S. and Miller, D., “Logic Programming in a Fragment of Intuitionistic Linear Logic,” inProc. of LICS’91, 1991.

  19. Kahn, K., Tribble, E. D., Miller, M. S., and Bobrow, D. G., “VULCAN: Logical Concurrent Objects,” inConcurrent Prolog (E. Shapiro, ed.), MIT Press, 1986.

  20. Loveland, D. W., “Near-Horn Prolog,” inProc. of the 4th International Conference on Logic Programming, Melbourne, Australia, 1987.

  21. McCabe, F. G., “Logic and Objects,”Technical Report, Imperial College, 1990.

  22. Meier, M., Dufresne, P., and de Villeneuve, D. H., “SEPIA,”Technical Report, ECRC, München, Germany, 1988.

    Google Scholar 

  23. Miller, D., “Lexical Scoping as Universal Quantification,” inProc. of the 6th International Conference on Logic Programming, Lisboa, Portugal, 1989.

  24. Miller, D., “A Logical Analysis of Modules in Logic,”Journal of Logic Programming,6,1 & 2, 1989.

  25. Miller, D., Nadathur, G., Pfenning, F., and Scedrov, A., “Uniform Proofs as a Foundation for Logic Programming,”Journal of Pure and Applied Logic, 1989.

  26. Monteiro, L. and Porto, A., “Contextual Logic Programming,” inProc. of the 6th International Logic Programming Conference, Lisboa, Portugal, 1989.

  27. Plaisted, D. A., “Non-Horn Clause Programming without Contrapositives,”Journal of Automated Reasoning, 4, 1988.

  28. Saraswat, V. A., “Concurrent Constraint Programming Languages,”Ph. D. thesis, Carnegie-Mellon University, Pittsburg, USA, 1989.

    Google Scholar 

  29. Shapiro, E., “A Subset of Concurrent Prolog and Its Interpreter,”Technical Report, Institute for New Generation Computer Technology, Tokyo, Japan, 1983.

    Google Scholar 

  30. Shapiro, E. and Takeuchi, A., “Object Oriented Programming in Concurrent Prolog,”New Generation Computing, 1, 1, 1983.

    Article  Google Scholar 

  31. Ueda, K., “Guarded Horn Clauses,”Ph. D. thesis, Dept. of Information Engineering, University of Tokyo, Japan, 1986.

    Google Scholar 

  32. Yoshida, K. and Chikayama, T., “AU'M — A Stream Based Concurrent Object-Oriented Language—,”, inProc. of the International Conference on Fifth Generation Computer Systems, Tokyo, Japan, 1988.

  33. Zaniolo, C., “Object Oriented Programming in Prolog,” inProc. of the International Symposium on Logic Programming, Atlantic City, USA, 1984.

Download references

Author information

Authors and Affiliations

Authors

About this article

Cite this article

Andreoli, JM., Pareschi, R. Linear objects: Logical processes with built-in inheritance. New Gener Comput 9, 445–473 (1991). https://doi.org/10.1007/BF03037173

Download citation

  • Received:

  • Revised:

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF03037173

Keywords

Navigation