| Shapiro, E., and T akeuchi, A. 1983.Object OrientedProgramming in Concurrent Prolog, New Generation Computing 1, pp.25-48. |
....of an object are represented as fluents and connected by the AC1 operator . For example, an object point which is at location (7, 3) and receives the input proj x is represented by the term point y(3) Communication between objects is realized by shared variables as proposed in [26]. In our example, I is such a variable. Transitions are specified by rules. For example, a transition for projecting two dimensional points on the x axis can be specified by the following rule. input(proj x (I # ) y(Y ) V ) input(I # ) V ) 1) Now the query can be ....
E. Shapiro and A. Takeuchi. Object oriented programming in Concurrent Prolog. New Generation Computing, 1:25--48, 1983.
.... X = Z list(X) X = Z 2 app(X; Y; Z) Y = nil list(X) where the relation list is defined as follows: list(L) L = nil j L = H:R list(R) Admissible guarded rules are a new concept that must not be confused with the guarded clauses of committed choice languages such as Concurrent Prolog [16] or Parlog [3] In these languages guarded clauses are used to define agents, while in our framework relations are defined by definite equivalences and admissible guarded rules are logical consequences of the definitions. Moreover, committed choice languages usually do not have a declarative ....
....with the declarative semantics. However, the operational semantics obtained by residuation and nonadmissible guarded rules is significantly stronger than what can be captured by classical declarative semantics. In fact, the object oriented programming techniques developed for Concurrent Prolog [16] become available if determinate atoms are selected for reduction with a fair strategy. For instance, an agent that reads two input streams X, Y and merges them into one output stream Z can be defined by four nonadmissible guarded rules: X = nil 2 merge(X; Y; Z) Y = Z X = H:R 2 merge(X; Y; Z) ....
[Article contains additional citation context not shown here]
E. Shapiro and A. Takeuchi. Object oriented programming in Concurrent Prolog. New Generation Computing, 1:24--48, 1983. 15
....The integration of Concurrent Logic Programming and the OO modeling has generated a great deal of research. We are interested in modeling objects as perpetual processes according to the OASIS execution model. Modeling objects as perpetual processes is an approach initiate by Shapiro and Takeuchi [17], in which an object is implemented as a tail recursive process that passes the update state of the object as arguments in the recursire call. The identity of the object is the name of an input stream argument of the process. Works in this direction are principally based on making OO extensions to ....
E. Shapiro and A. Takeuchi. Object oriented programming in concurrent prolog, en New Generation Computing, vol.l, pages 25-48, 1983.
.... predominant approach to concurrent object based systems is that of the actor model of computation [17, 1] This model has not only been implemented directly [19] but has also been used as the basis for combining objects and concurrency in other languages, such as ABCL [27] and Concurrent Prolog [24, 18]. The metaphor used in the actor model is of a mail system, with messages being addressed and sent directly to individual actors. Thus, actor systems are based upon point to point message passing and message driven computation. Concurrent METATEM is based on a rather different computational ....
E. Shapiro and A. Takeuchi. Object Oriented Programming in Concurrent Prolog. In E. Shapiro, editor, Concurrent Prolog--Collected Papers, chapter 29. MIT Press, 1987.
....This wos introduced by Miller with implicotionol gools in [50] Unfortunotely, this technique is not oppropriote for dotobose since it extend only temporory the progroin with modules defined in the gool ond ofter gool evoluotion such modules ore discorded. Other opprooches considering concurrency ([8, 57]) ore not explicitly considered due to o rother peculior foshion in dotobose field where concurrency is omong tronsoctions ond the moin purpose of o concurrent tronsoction model is to keep integrity of doto [58] Along this woy we find Contextuol Logic Progromming [51, 52] ond messoges used os o ....
E. Shapiro and A. Takeuchi. Object-Oriented programming in Concurrent Prolog. New Generation Computing, 1 (1), 1983.
....into groups of closely related objects. In the past few years, the integration of object oriented and logic programming has attracted great interests. The objective is to gain the best of both approaches. Various methods of incorporating object oriented programming into Prolog have been discussed [5, 13, 14]. Also, a number of novel languages have been proposed such as OOLP [3] C Logic [2] L O [11] Prolog [12] COMPLEX [4] LIFE [1] and some of them have been implemented. However, none of them support all important object oriented features. In this paper, we describe Pluto, an object oriented ....
E. Shapiro and A. Takeuchi. Object oriented programming in concurrent Prolog. New Generation Computing, 1:25-48, 1983.
....several new processes or to terminate. A sequent system, which describes the correct inferences in proofs, can therefore be viewed as a formal specification of allowed process state transitions. This process view of logic programming has already been taken in such systems as Concurrent Prolog [30, 29], Parlog [13, 15] or GHC [31] However, these languages, based on Classical Logic (more precisely, its fragment restricted to Horn clauses) offer a very limited structure for representing process states. Indeed, a state must be encoded as a simple atom, i.e. a first order term. It has been shown ....
E. Shapiro and A. Takeuchi. Object oriented programming in concurrent prolog. New Generation Computing, 1(1):25--48, 1983.
....model for programming based on the the notion of computational objects which communicate via message passing. This paradigm has features in common with Minsky s[25] frames and Hewitt s[19] actors described above (in fact Hewitt was influenced by an early version of smalltalk) Shapiro and Takeuchi[34] have shown how object orientation can be implemented in a concurrent logic programming language through the following identifications: ffl An object is a process that calls itself recursively and holds its internal state in unshared arguments. ffl Objects communicate with each other by ....
E. Shapiro and A. Takeuchi. Object oriented programming in concurrent prolog. In E. Shapiro, editor, Concurrent Prolog, volume 2, chapter 29, pages 251--273. MIT Press, 1987.
....can be viewed as organizations capable of solving tasks both in terms of internal distribution and of external cooperation. Our starting point is the family of concurrent logic programming languages [20] where actors can be elegantly implemented as AND concurrent, stream communicating processes [22]. A simple extension in the logic underlying these languages, given by the introduction of a novel form of concurrent disjunction (denoted by the symbol ) will provide us with the capabilities of structuring such processes to support an organization like style of programming. We have shown ....
....our approach with related work. 2 Concurrent Structured Processes 2. 1 The Process View of Objects Concurrent logic programming languages based on Horn logic [20] provide an elegant implementation of objects (i.e. actors) as proof processes communicating with each other via shared variables [22]. Such processes may be perpetual, and can be suspended and then resumed upon interaction with the user; change of state is achieved side effect free by performing an inference step which replaces a subgoal by 0, 1 or more subgoals. Thus, as opposed to sequential logic programming languages like ....
[Article contains additional citation context not shown here]
E. Shapiro and A. Takeuchi. Object oriented programming in concurrent prolog. New Generation Computing, 1(1):25--48, 1983.
....namely the search tree. However, such a view of objects as processes is not as satisfactory on the static aspects of object oriented programming, i.e. knowledge structuring. Truly, one can use stream communication to implement delegation, a dynamic form of knowledge sharing (see for example [11, 19, 30]) but many useful forms of knowledge structuring fall without this schema, like, for instance, subtyping with complex types as characterized in [2] The main innovation of LO with respect to Prolog will be in allowing program formulae with multiple heads , i.e. having the form (Head 1 : ....
....(IV) any method which can be used for 2 dimensional points can also be used for colored 2 dimensional points. Thus, the inclusion hierarchy between contexts is here the basis for inheritance. This is the crucial difference between LO and the usual approach to knowledge sharing based on delegation [11, 19, 30]. Indeed, in LO, there is only one (structured) process for each object, while delegation requires creating as many delegate processes as there are classes to which the object belongs (directly or indirectly) Furthermore, all these delegates need to communicate with each other and this implies a ....
[Article contains additional citation context not shown here]
E. Shapiro and A. Takeuchi. Object oriented programming in concurrent prolog. New Generation Computing, 1(1):25--48, 1983.
....tree. However, such a view of objects as processes is not as satisfactory on the static aspects of object oriented programming, i.e. knowledge structuring. Truly, one can use stream communication to implement a form of inheritance (known as delegation) among classes of objects (see for example [6, 14, 23]) but many useful forms of knowledge structuring fall without this schema, like, for instance, subtyping with complex types as characterized in [1] The main innovation of LO with respect to Prolog will be in allowing program clauses with multiple heads , i.e. having the form (Head 1 : ....
....rule (IV) any method which can be used for 2 dimensional points can also be used for coloured 2 dimensional points. Thus, the inclusion hierarchy between contexts is here the basis for inheritance. This is the crucial difference between LO and the usual approach to inheritance based on delegation [6, 14, 23]. Indeed, in LO, there is only one (structured) process for each object, while delegation requires creating as many delegate processes as there are classes to which the object belongs (directly or indirectly) Furthermore, all these delegates need to communicate with each other and this implies a ....
[Article contains additional citation context not shown here]
E. Shapiro and A. Takeuchi. Object oriented programming in concurrent prolog. New Generation Computing, 1(1):25--48, 1983.
....simultaneous evaluation of several rules for the same atom of a goal [8] Here we are interested in studying how these mechanisms can be used with an object oriented style, i.e. to specify communicating entities with independent states. Object oriented parallel logic programming was introduced in [21]. We will investigate how logic objects are created and coordinated, and how they communicate. As a simple case study, we will show how a counter object can be defined and manipulated. As a more complex example, we will show how can be designed a system including a database shared among a number ....
Shapiro, E., and Takeuchi, A. Object Oriented Programming in Concurrent Prolog. New Generation Computing, 1:1, 1986, 25-49.
....a producerconsumer system based on read only annotations: prod(X) cons(X ) Process cons cannot give a value to X: it must wait for some value coming from prod. Without the annotation, the two processes would compete for the control of the variable. 9 3.1. Specifying a system with FCP In [Shapiro 83] it is shown how to use a parallel logic language for specifying systems made of objects. Unlike other object oriented languages, which use a procedural style of methods and messages definition, FCP is declarative, allowing a high level of abstraction in the description of object behavior by ....
E.Shapiro, A.Takeuchi, "Object Oriented Programming in Concurrent Prolog", New Generation Computing, 1:1, 25-48, 1983.
....our language Aldwych as a pun on the concurrent logic language Strand (the London street al..dwych turns into the London street Strand) This approach is not new. Following a description of a method of writing concurrent logic programs which viewed them in object terms rather than logic terms [Sh Ta 83] a number of attempts were made to build object oriented languages which compiled into concurrent logic languages [Davi 92] The main advantage of maintaining the direct translation into a concurrent logic language is that it provides us with an operational semantics, in much the same way ....
....indeterminately according to either rule. Long Lived Processes The computation described above are ephemeral. The way of making long lived processes in Aldwych follows the technique for programming in an object oriented style in concurrent logic languages described by Shapiro and Takeuchi [Sh Ta 83] Note firstly that variables may be assigned tuple values as well as constants. a=f(b,c) on the lhs means suspend until variable a has been assigned to a tuple with name f and two arguments given local variable names b and c , and on the rhs means assign the tuple with name f and arguments ....
E.Shapiro and A.Takeuchi. Object-oriented programming in Concurrent Prolog. New Generation Computing 1, pp.25-48.
....hence same process description. This is how the Actors model [Agha 86] works: an actor creates the actor to receive the next message in a stream of messages which are conceptually sent to a single actor. It is also the basis for viewing concurrent logic programming in an object oriented way [Sh Ta 83] Hunt 95] the arguments in a clause head are considered to represent the state of an object, with the arguments in a recursive call in the clause body representing the state as updated by the actions represented by the clause. To encourage thinking in these conceptual terms, Aldwych has ....
....as that used here, that is using derived forms which can be translated to the simpler operational model. The aim of the derived forms introduced is to overcome verbosity, in particular the verbosity which is found in the direct use of concurrent logic languages for object oriented programming [Sh Ta 83] which is the ancestor of this work. The language has been developed experimentally, so an implementation exists, compiling into the concurrent logic language KLIC [Roku 96] The development of the language has proceeded by using it, observing programming patterns, and adding new derived forms ....
E.Shapiro and A.Takeuchi. Object-oriented programming in Concurrent Prolog. New Generation Computing, 1 pp.25-48.
....in the attempt of the concurrent logic languages to hold on to the logic like syntax of Prolog. This has led to the mistaken view that the concurrent logic languages are parallel Prologs and to criticisms based on this mistaken view [Hewi 85] Ge Ca 92] In fact it was recognised early on [Sh Ta 83] that an alternative view of concurrent logic languages as variants of the object oriented paradigm is useful for writing practical programs in them, a view we have developed further ourselves [Hunt 95b] The techniques we have used above of representing mutable encapsulated state by arguments to ....
E.Shapiro and A.Takeuchi. Object-oriented programming in Concurrent Prolog, New Generation Computing 1, pp.25-48.
....and guard evaluation succeeds for a clause, the computation can commit to that specific clause and no backtracking is allowed afterwards. There are several concurrent logic dialects, that differ in syntactic form and semantic details of the rules [166] One of the most known is Concurrent Prolog [167]. Example: Concurrent Prolog was introduced as a concurrent logic language useful to write parallel programs with a dataflow like style. The following is an example of a logic process that defines a (shared) counter. a counter class declaration counter(Input,State) Input = clear I] ....
E. Shapiro and A. Takeuchi. Object-Oriented Programming in Concurrent Prolog. New Generation Computing, 1(1):25--49, 1983.
....3 Object Oriented and Distributed Programming GUI programming as proposed in this paper is based on the techniques for object oriented and distributed programming in Curry. Therefore, we sketch these features in this section. More details and examples can be found in [8] It is well known [18] that concurrent logic programming languages provide a simple way to implement (concurrent) objects. An object can be seen as a constraint or predicate processing a stream of incoming messages. The local state of the object is a parameter which may change in recursive calls when a message is ....
E. Shapiro and A. Takeuchi. Object Oriented Programming in Concurrent Prolog. In E. Shapiro, editor, Concurrent Prolog: Collected Papers, volume 2, pp. 251--273. MIT Press, 1987.
No context found.
Shapiro, E., and T akeuchi, A. 1983.Object OrientedProgramming in Concurrent Prolog, New Generation Computing 1, pp.25-48.
No context found.
E. Shapiro and A. Takeuchi. Object Oriented Programming in Concurrent Prolog, pages 25-48. New Generation Computing, 1983.
No context found.
Shapiro, E.Y., Takeuchi, A. (1983) Object Oriented Programming in Concurrent Prolog. New Generation Computing 1(1), pp. 25--48.
No context found.
E. Shapiro and A. Takeuchi, `Object oriented programming in concurrent Prolog', New Generation Computing, 1, (1), 25--48 (1983).
No context found.
E. Shapiro and A. Takeuchi, Object oriented programming in concurrent prolog, in E. Shapiro, editor, Concurrent Prolog, MIT Press, 2, chapter 29, 251--273 (1987).
No context found.
Shapiro, E., and Takeuchi, A. Object oriented programming in concurrent prolog. In Concurrent Prolog, E. Shapiro, Ed., vol. 2. MIT Press, 1987, ch. 29, pp. 251--273. REFERENCES 139
No context found.
Shapiro, E., and Takeuchi, A. 1983. Object Oriented Programming in Concurrent Prolog, New Generation Computing 1 (1983), pp.25-48.
First 50 documents Next 50
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC