Results 1 - 10
of
42
SELF: The power of simplicity
, 1987
"... Abstract. SELF is an object-oriented language for exploratory programming based on a small number of simple and concrete ideas: prototypes, slots, and behavior. Prototypes combine inheritance and instantiation to provide a framework that is simpler and more flexible than most object-oriented languag ..."
Abstract
-
Cited by 520 (16 self)
- Add to MetaCart
Abstract. SELF is an object-oriented language for exploratory programming based on a small number of simple and concrete ideas: prototypes, slots, and behavior. Prototypes combine inheritance and instantiation to provide a framework that is simpler and more flexible than most object-oriented languages. Slots unite variables and procedures into a single construct. This permits the inheritance hierarchy to take over the function of lexical scoping in conventional languages. Finally, because SELF does not distinguish state from behavior, it narrows the gaps between ordinary objects, procedures, and closures. SELF’s simplicity and expressiveness offer new insights into objectoriented computation. To thine own self be true. —William Shakespeare 1
Logic Programming with Focusing Proofs in Linear Logic
- Journal of Logic and Computation
, 1992
"... The deep symmetry of Linear Logic [18] makes it suitable for providing abstract models of computation, free from implementation details which are, by nature, oriented and non symmetrical. I propose here one such model, in the area of Logic Programming, where the basic computational principle is C ..."
Abstract
-
Cited by 290 (8 self)
- Add to MetaCart
The deep symmetry of Linear Logic [18] makes it suitable for providing abstract models of computation, free from implementation details which are, by nature, oriented and non symmetrical. I propose here one such model, in the area of Logic Programming, where the basic computational principle is Computation = Proof search.
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
Balloon Types: Controlling Sharing of State in Data Types
- In ECOOP Proceedings
, 1997
"... . Current data abstraction mechanisms are not adequate to control sharing of state in the general case involving objects in linked structures. The pervading possibility of sharing is a source of errors and an obstacle to language implementation techniques. We present a general extension to programmi ..."
Abstract
-
Cited by 116 (1 self)
- Add to MetaCart
. Current data abstraction mechanisms are not adequate to control sharing of state in the general case involving objects in linked structures. The pervading possibility of sharing is a source of errors and an obstacle to language implementation techniques. We present a general extension to programming languages which makes the ability to share state a first class property of a data type, resolving a long-standing flaw in existing data abstraction mechanisms. Balloon types enforce a strong form of encapsulation: no state reachable (directly or transitively) by a balloon object is referenced by any external object. Syntactic simplicity is achieved by relying on a non-trivial static analysis as the checking mechanism. Balloon types are applicable in a wide range of areas such as program transformation, memory management and distributed systems. They are the key to obtaining self-contained composite objects, truly opaque data abstractions and value types---important concepts for the develo...
Interaction Abstract Machines
- Trends in Object-Based Concurrent Computing
, 1993
"... Machines Jean-Marc Andreoli, Paolo Ciancarini and Remo Pareschi European Computer Industry Research Centre Abstract In this paper, we introduce the metaphor of Interaction Abstract Machines (IAMs), in the same vein of such metaphors as the Chemical Abstract Machine. The main point about IAMs is ..."
Abstract
-
Cited by 44 (16 self)
- Add to MetaCart
Machines Jean-Marc Andreoli, Paolo Ciancarini and Remo Pareschi European Computer Industry Research Centre Abstract In this paper, we introduce the metaphor of Interaction Abstract Machines (IAMs), in the same vein of such metaphors as the Chemical Abstract Machine. The main point about IAMs is in allowing interactions among independent, locally defined subsystems --- a crucial requirement for capturing the global behavior of open systems. IAMs amalgamate dual concepts in distributed problem solving, such as blackboards and broadcast communication, which are exploited to account for, respectively, the tight integration and the loose integration of system components. The formal counterpart for the IAM metaphor can be found in the computational model of Linear Objects (LO), whose aim is the abstract modeling of concurrent agent-oriented computations and whose operational semantics is given in terms of the proof theory of Linear Logic, a framework recently introduced to provide a theoretical account for the notion of (inter)action.
Communication as Fair Distribution of Knowledge
- In Proc. of OOPSLA'91
, 1991
"... We introduce an abstract form of interobject communication for object-oriented concurrent programming based on the proof theory of Linear Logic, a logic introduced to provide a theoretical basis for the study of concurrency. Such a form of communication, which we call forum-based communication, ca ..."
Abstract
-
Cited by 44 (12 self)
- Add to MetaCart
We introduce an abstract form of interobject communication for object-oriented concurrent programming based on the proof theory of Linear Logic, a logic introduced to provide a theoretical basis for the study of concurrency. Such a form of communication, which we call forum-based communication, can be seen as a refinement of blackboard-based communication in terms of a more local notion of resource consumption. Forumbased communication is introduced as part of a new computational model for the object-oriented concurrent programming language LO, presented at last year OOPSLA/ECOOP (1990), which exploits the proof-theory of Linear Logic also to achieve a powerful form of knowledge-sharing.
Challenging the Computational Metaphor: Implications for How We Think
, 1999
"... This paper explores the role of the traditional computational metaphor in our thinking as computer scientists, its influence on epistemological styles, and its implications for our understanding of cognition. It proposes to replace the conventional metaphor --- a sequence of steps --- with the notio ..."
Abstract
-
Cited by 27 (2 self)
- Add to MetaCart
This paper explores the role of the traditional computational metaphor in our thinking as computer scientists, its influence on epistemological styles, and its implications for our understanding of cognition. It proposes to replace the conventional metaphor --- a sequence of steps --- with the notion of a community of interacting entities, and examines the ramifications of such a shift on these various ways in which we think.
The Coordination Language Facility: coordination of distributed objects
- JOURNAL OF THEORY AND PRACTICE OF OBJECT SYSTEMS (TAPOS
, 1996
"... The development of communication infrastructures and the rapid growth of networking facilities in information technologies increase information mobility and the decentralisation of work processes in industry and services. This evolution leads to increasing demands on the coordination of information ..."
Abstract
-
Cited by 18 (6 self)
- Add to MetaCart
The development of communication infrastructures and the rapid growth of networking facilities in information technologies increase information mobility and the decentralisation of work processes in industry and services. This evolution leads to increasing demands on the coordination of information systems. However, information technologies available today are capable of supporting only interoperability of information systems from the point of view of communication infrastructures. This makes possible an easy exchange of information but provides no support for coordination. To fill this gap, we propose the Coordination Language Facility (CLF) as a coordination layer on top of distributed systems infrastructures such as CORBA-compliant Object Request Brokers. The CLF provides support for the coordination of heterogeneous, possibly distributed, active objects within larger units implementing (work) processes. On one hand, coordinator objects are declaratively implemented as rules. On the other hand, the objects participating in a coordination (participants) must instantiate a minimal interface which specifies the negotiation dialogue invoked, at run-time, by coordinators. The coordination activity is split between the implementation of the interface on the participants'side and the execution of the rules on the coordinators' side, thus offering a clear separation of concerns between local and global activities. The interface is specified using the CORBA standard for distributed objects, removing issues of heterogeneity and allowing each component to be implemented in the most appropriate language and environment.
Abstract Interpretation of Linear Logic Programming
- IN PROC. OF ILPS'93
, 1993
"... Linear Logic is gaining momentum in computer science because it offers a unified framework and a common vocabulary for studying and analyzing different aspects of programming and computation. We focus here on models where computation is identified with proof search in the sequent system of Linear Lo ..."
Abstract
-
Cited by 14 (2 self)
- Add to MetaCart
Linear Logic is gaining momentum in computer science because it offers a unified framework and a common vocabulary for studying and analyzing different aspects of programming and computation. We focus here on models where computation is identified with proof search in the sequent system of Linear Logic. A proof normalization procedure, called "focusing", has been proposed to make the problem of proof search tractable. Correspondingly, there is a normalization procedure mapping formulae of Linear Logic into a syntactic fragment of that logic, called LinLog, and in which the focusing normalization for proofs can be most conveniently expressed. In this paper, we propose to push this compilation/normalization process further, by applying abstract interpretation and partial evaluation techniques to (focused) proofs in LinLog. These techniques provide information concerning the evolution of the computational resources (formulae) during the execution (proof construction). The practical outcome that we expect from this theoretical effort is the definition of a general tool for statically analyzing and reasoning about the runtime behavior of programs in frameworks where computations can be accounted for in terms of proof search in Linear Logic.
LO and Behold! Concurrent Structured Processes
- In Proc. of OOPSLA /ECOOP'90
, 1990
"... We introduce a novel concurrent logic programming language, which we call LO, based on an extension of Horn logic. This language enhances the process view of objects implementable in Horn-based concurrent logic programming languages with powerful capabilities for knowledge structuring, leading to ..."
Abstract
-
Cited by 14 (3 self)
- Add to MetaCart
We introduce a novel concurrent logic programming language, which we call LO, based on an extension of Horn logic. This language enhances the process view of objects implementable in Horn-based concurrent logic programming languages with powerful capabilities for knowledge structuring, leading to a flexible form of variable-structure inheritance. The main novelty about LO is a new kind of OR-concurrency which is dual to the usual AND-concurrency and provides us with the notion of structured process. Such OR-concurrency can be nicely characterized with a sociological metaphor as modelling the internal distribution of tasks inside a complex organization; this complements the external cooperation among different entities accounted for by AND-concurrency.

