Results 1 -
2 of
2
Linear Objects: logical processes with built-in inheritance
- New Generation Computing
"... We present a new framework for amalgamating two successful programming paradigms: logic programming and object-oriented programming. From the former, we keep the declarative reading of programs. From the latter, we select two crucial notions: (i) the ability for objects to dynamically change their ..."
Abstract
-
Cited by 201 (6 self)
- Add to MetaCart
We present a new framework for amalgamating two successful programming paradigms: logic programming and object-oriented programming. From the former, we keep the declarative 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 goals 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 a 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. 1
Object-Oriented Computations in Logic Programming
- Object-Oriented Programming. LNCS 821
, 1994
"... 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 assign ..."
Abstract
-
Cited by 6 (3 self)
- Add to MetaCart
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 intraand inter-object constraints and with partially specified instances.

