| Ehud Y. Shapiro. A subset of Concurrent Prolog and its interpreter. Technical Report 003, Institute for New Generation Computer Technology, Tokyo, 1983. |
.... First experiments with concurrency were done in the venerable IC Prolog language where coroutining was used to simulate concurrent processes [22, 23] This led to Parlog and Concurrent Prolog, which introduced the process model of logic programming, usually known as concurrent logic programming [21, 101, 102]. The advent of GHC (Guarded Horn Clauses) simplified concurrent logic programming considerably by introducing the notion of quiet guards [115] A clause matching a goal will fire only if the guard is entailed by the constraint store. This formulation and its theoretical underpinning were ....
Ehud Shapiro. A subset of Concurrent Prolog and its interpreter. Technical Report TR-003, Institute for New Generation Computer Technology (ICOT), Cambridge, Mass., January 1983.
....in logic programming over the last ten years. One emerged from the process interpretation of logic programs introduced in the late 1970s [12] and led to the design and (possibly parallel) implementation of a variety of concurrent logic programming languages amenable to process interpretation [4][34][5] 37] These languages aim at the description of systems of processes and not directly at the description of search problems. Control is an integral part of the languages, and users program concurrent execution. The other direction aims at the parallel execution of pure logic or Prolog programs ....
....[10] into logic programming for the first time. This made Relational Language capable of describing don t care nondeterministic processes. The subsequent concurrent logic languages attempted to refine existing ones or to enhance their expressive power. These languages include Concurrent Prolog [34], PARLOG [5] Guarded Horn Clauses (GHC) 37] 38] Flat Concurrent Prolog [35] and Oc [18] A survey and a genealogy of these languages can be found in [36] and [31] respectively. Here, we introduce GHC without guard goals as a process description language. This subset of GHC is essentially ....
Shapiro, E. Y. A Subset of Concurrent Prolog and Its Interpreter. Tech. Report TR-003, ICOT, 1983.
....the programmer doesn t care which one the program actually computes. In fact, the benefits of committing to a solution even though others might exist is su#ciently important that several logic programming languages (particularly concurrent logic programming languages including Concurrent Prolog [90], GHC [106] and Parlog [19] provide only this sort of nondeterminism . Its use is not without drawbacks however, since if not used in a restricted class Some of the concurrent logic programming languages did provide deep nondeterminism within the guard of the of contexts, it can lead to ....
....of the committed choice languages allowed arbitrary computation in the guard, but without fail discarded general guards in favor of flat guards containing only unifications and builtin operations. This was because it was too di#cult to execute the general deep guards e#ciently. Concurrent Prolog [90], Parlog [19] and GHC [106] are all examples of languages that have evolved in this fashion. Of these, the early versions of Parlog are the most interesting in relation to Mercury because they had mode declarations for predicates (although clause bodies could override these declarations) and ....
E. Shapiro. A Subset of Concurrent Prolog and its Interpreter. In E. Shapiro, editor, Concurrent Prolog: Collected Papers (Volume I), pages 27--83. MIT Press, London, 1987.
.... annotate predicate definitions to permit more efficient compilation [Warren 77] Several sequential logic languages use modes to control the order of evaluation of literals, including Epilog [Porto 82] and Mu Prolog [Naish 85] The parallel logic languages Parlog [Clark 85] and Concurrent Prolog [Shapiro 83] use modes for concurrency control. Finally, modes are used to help plan the evaluation of database queries in NAIL [Ullman 85] A more detailed discussion of these uses of bi valued modes appears in Chapter 2. We have also discussed our pragmatic approach to incorporating equality. It involves ....
....mode restrictions. Bi valued modes are the simplest possible form of mode, and are the kind that have appeared previously in, among others, the Warren Prolog compiler [Warren 77] an extended version of Prolog called Epilog [Porto 82] and a concurrent logic language called Concurrent Prolog [Shapiro 83] 2.1.1 Sorts A Denali program contains a set of encapsulated predicate implementations. An implementation consists of a sorted, moded header and a list of defining Horn clauses. We will ignore the moded portion of headers for now. A length predicate, for example, is presented as: length = ....
[Article contains additional citation context not shown here]
E. Shapiro. A Subset of Concurrent Prolog and its Interpreter. Technical Report TR-003, ICOT, Tokyo, February 1983.
....each goal is obtained from the previous one by replacing an atom by the body of a defining clause, and by adding the corresponding constraint, provided that consistency is preserved. Like pure logic programming, clp has a natural computational model based on the so called process interpretation ([26, 22]) the conjunction of atoms in a goal can be regarded as parallelism, and the selection of alternative clauses as nondeterminism. Such a model presents many similarities with the paradigm of concurrent constraint programming (ccp, 25] However, it differs from the latter (at least, from the ....
E.Y. Shapiro. A subset of Concurrent Prolog and its interpreter. Technical Report TR-003, Institute for New Generation Computer Technology, Tokyo, 1983.
....concurrent programming in its own right. Relational Language [3] was the first to appear in the form of a complete programming language. Guarded Horn Clauses (GHC) was designed in the Fifth Generation Computer Project in 1984 [11] after thorough examination of its predecessors Concurrent Prolog [9] and an early version of PARLOG [4] Because of its simplicity, GHC was soon accepted in the Project as the base of KL1, the full fledged kernel language for the Parallel Inference Machine. GHC was soon subsetted to Flat GHC with a simpler guard construct, and the design of KL1 started based on ....
Shapiro, E. Y., A Subset of Concurrent Prolog and Its Interpreter. ICOT Tech. Report TR-003, Institute for New Generation Computer Technology, Tokyo, 1983.
....partial order on them, and this is just what we intend to express in GHC. In this sense, GHC could be viewed as a realization of Kowalski s thesis algorithm = logic control [4] There may be various ways to achieve our purposes and to obtain a parallel programming language. Concurrent Prolog [6], PARLOG [2] and GHC share the above design goals in principle, and they all have guard as a syntactic construct. The unique feature of GHC is that it uses guard as the only syntactic construct, as we will describe below. 3. Syntax and Semantics 3.1. Syntax A GHC program is a set of guarded ....
Shapiro, E. Y., A Subset of Concurrent Prolog and Its Interpreter. ICOT Tech. Report TR-003, Institute for New Generation Computer Technology, Tokyo, 1983. { 12 {
....as opposed to delegating the task. In the model of computation we are going to propose, objects 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 ....
....In Section 4 we shall briefly describe the current state of implementation of the system. Finally, in Section 5 we shall compare 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 ....
[Article contains additional citation context not shown here]
E. Shapiro. A subset of concurrent prolog and its interpreter. Technical report, Institute for New Generation Computer Technology, Tokyo, Japan, 1983.
....and truly concurrent model of computation. The computational model for LO presented in [5, 4, 3] has dealt with interobject communication simply by importing the technique of shared logical variables directly from concurrent logic programming languages based on Horn logic, like Concurrent Prolog [26], Parlog [12] and GHC [29] However, such a solution is to be considered as temporary and not completely satisfactory mainly for the following (strictly related) reasons: i) It is committed to a specific implementation choice (the use of unification of logical variables in order to achieve ....
E. Shapiro. A subset of concurrent prolog and its interpreter. Technical report, Institute for New Generation Computer Technology, Tokyo, Japan, 1983.
....extension of Prolog, which we call Linear Objects (henceforth LO) with the aim of providing a logic programming framework capable of accommodating the main features of object oriented programming. Our starting point is the approach, originally introduced in concurrent logic programming languages [17, 29, 31, 32], which identifies objects with proof processes and object states with arguments occurring in the goal of a given process. From a logic programming point of view, this approach provides a clean, side effect free account of the dynamic behavior of objects in terms of the only dynamic entity of ....
....on Herbrand interpretations. 5 Related Work The logic programming community has produced many contributions in the direction of object oriented programming. Among the efforts which have been focusing on the dynamic aspects of object oriented programming (i.e. change of state) we have mentioned [11, 17, 19, 29, 30, 31, 32]; efforts which have been focusing on the static aspects (i.e. inheritance) of object oriented programming are described in [2, 9, 12, 16, 21, 33] The framework presented here should provide a theoretical basis for the integration of these two traditions. 10, 28, 8] provide also extensions of ....
E. Shapiro. A subset of concurrent prolog and its interpreter. Technical report, Institute for New Generation Computer Technology, Tokyo, Japan, 1983. 16
....semantics and to develop operational and denotational models for both sequential Prolog and parallel logic languages. One of the rst models of parallel logic programming was implemented in the family of committed choice languages [26] well known representatives of which are Concurrent PROLOG [25], PARLOG [13] and Guarded Horn Clauses (GHC) 32] Committed choice languages support don t care nondeterminism and the parallel composition of goals. Further descendants of these languages, such as Flat Concurrent Prolog [19] and Flat GHC [23] are based on at guards. In an attempt to combine ....
E. Y. Shapiro. A subset of concurrent Prolog and its interpreter. Technical Report TR-003, ICOT, Tokyo, 1983.
....extension of Prolog, which we call Linear Objects (henceforth LO) with the aim of providing a logic programming framework capable of accomodating the main features of object oriented programming. Our starting point is the approach, originally introduced in concurrent logic programming languages [12, 22, 24, 25], which identifies objects with proof processes and object states with arguments occurring in the goals of a given process. From a logic programming point of view, this approach provides a clean, side effect free account of the dynamic behavior of objects in terms of the only dynamic entity of ....
....objects encoded as contexts. 5 Related Work The logic programming community has produced many contributions in the direction of object oriented programming. Among the efforts which have been focusing on the dynamic aspects of object oriented programming (i.e. change of state) we have mentioned [6, 12, 14, 22, 23, 24, 25]; efforts which have been focusing on the static aspects (i.e. inheritance) of object oriented programming are described in [1, 4, 7, 11, 26] The framework presented here should provide a theoretical basis for the integration of these two traditions. 5] provides also an extension of Prolog in ....
E. Shapiro. A subset of concurrent prolog and its interpreter. Technical report, Institute for New Generation Computer Technology, Tokyo, Japan, 1983.
....argument from the data structure (called the blackboard) and on the other hand, by treating active processes like passive data on the blackboard i.e. by manipulating them by the same primitives. For both frameworks as well as for any framework inherited from the above general scheme (such as [2, 5, 10, 8, 12, 9, 7, 11]) it is widely recognized that communication issues are better separated from logical ones. Hence, a natural way of writing a program consists of splitting the problems into subproblems, of solving them individually, assuming the required data is available, and of combining them, checking that ....
....divide and conquer methodology. Our talk will discuss two proposals along these lines. For the purposes of illustration and simplicity, we will use the sequential and passive version of Log, called Log. However, we strongly believe that our results can be transposed to other schemes including [2, 5, 10, 8, 12, 9, 7, 11]. After a brief description of the Log framework, we will propose and criticize a first methodological approach based on the combination of traces. Their low level nature evidences the need for a more abstract approach, proposed next. It lies on specifications written in a UNITY like logic ( 6] ....
E.Y. Shapiro. A Subset of Concurrent Prolog and its Interpreter. Technical Report TR-003, Institute for New Generation Computer Technology (ICOT), Tokyo, 1983.
....a variable. The control constructs are delay clauses in which the user can specify the explicit conditions under which the goal should delay, e.g. delay and(X, Y, Z) if var(X) var(Y) X = Y, Z = 1. speci es the delaying condition for logical conjunction. Unlike a call based [5] or shorthand [25, 26, 17, 30] notation in similar systems this gives the user the possibility to express a more elaborate control while keeping the eciency since the delay clauses are fully compiled. Another additional feature of SEPIA is the ability to handle events, both synchronous (errors, exceptions) and asynchronous ....
....and external function can also delay, but the conditions necessary for this are coded directly in the body of the C function. The mechanism used in SEPIA is similar to geler [5] wait declarations [25, 21] IC Prolog [17] bind hook [4] when declarations [26] or committed choice languages [30, 18]. but its semantics is cleaner and more powerful. While the other Prolog systems use some sort of shorthand notation to de ne the condition under which a call to a procedure should, or should not delay, SEPIA allows the user to specify the condition directly, using the normal Prolog notation, ....
Ehud Shapiro. A subset of concurrent Prolog and its interpreter. Technical Report TR-003, ICOT, Tokyo, Japan, January 1983.
....name freeze 2. freeze(Var, Goal) calls Goal if Var is instantiated, otherwise Goal is suspended and woken only after Var is instantiated. Similar mechanisms were available in other systems: MU Prolog [9] IC Prolog [4] ESP [2] SICStus Prolog [1] NU Prolog [10] or in committed choice languages [12, 13, 5, 14]. During our designs we have identified the main features which determine particular approaches and answer the important questions. Below we list the main questions that have to be answered by every design. 2.1 When to Delay a Call Which condition has to be satisfied or violated for a call to be ....
Ehud Shapiro. A subset of concurrent Prolog and its interpreter. Technical Report TR-003, ICOT, Tokyo, Japan, January 1983.
.... First experiments with concurrency were done in the venerable IC Prolog language where coroutining was used to simulate concurrent processes [12, 13] This led to Parlog and Concurrent Prolog, which introduced the process model of logic programming, usually known as concurrent logic programming [11, 71, 72]. The advent of GHC (Guarded Horn Clauses) simpli ed concurrent logic programming considerably by introducing the notion of quiet guards [84] A clause matching a goal will re only if the guard is entailed by the constraint store. This formulation and its theoretical underpinning were pioneered ....
Ehud Shapiro. A subset of Concurrent Prolog and its interpreter. Technical Report TR003, Institute for New Generation Computer Technology (ICOT), Cambridge, Mass., January 1983.
....two forms of parallelism in their pure form results in creating an and or search tree in a breath first manner that is, often, of making the computation grow in an exponential manner. Several mechanisms have been proposed to limit this size. Among the most well known ones are the commit operator ([Sh83], Gr85] Ue86] Ya86] read only annotations ( Sh83] mode declaration ( Gr85] rules of suspension ( Ue86] and mutual exclusiveness of clauses ( Ya86] As an interesting side effect of the improvement of the efficiency of the computations, these annotations provide a good framework for ....
....creating an and or search tree in a breath first manner that is, often, of making the computation grow in an exponential manner. Several mechanisms have been proposed to limit this size. Among the most well known ones are the commit operator ( Sh83] Gr85] Ue86] Ya86] read only annotations ([Sh83]) mode declaration ( Gr85] rules of suspension ( Ue86] and mutual exclusiveness of clauses ( Ya86] As an interesting side effect of the improvement of the efficiency of the computations, these annotations provide a good framework for competing and cooperating processes i.e for concurrent ....
Shapiro E.Y., A subset of Concurrent Prolog and its Interpreter, Technical Report TR003, ICOT, Tokyo, February 1983.
....of Computer Science, University of Waikato, Hamilton, NEW ZEALAND. Email:cleary waikato.ac.nz 1 channels between processes (goals) All goals even those with variables in common may execute concurrently. Languages in this class include PARLOG [Clark Gregory 1986] Concurrent Prolog [Shapiro 1987] , and GHC [Ueda 1987] and their flat versions; newer languages like Strand [Foster Taylor 1990] have recently come on the scene as well. Finally, the backtracking stream AND parallel models feature both parallel execution of dependent and independent goals and backtracking, at the cost of ....
Ehud Shapiro. A subset of Concurrent Prolog and its interpreter, In Concurrent Prolog---Collected Papers, chapter 2, pages 27--83. MIT Press, 1987.
....architectures, such as Transputer Networks and Hypercubes. The implementations of concurrent logic programming languages have followed this trend. Although some languages have proposed a distributed approach to logic programming (e.g. Delta Prolog ( 3] most of the proposals (Concurrent Prolog ([22]) Parlog ( 13] GHC ( 23] cc ( 21] Strand ( 11] have assumed and or have been implemented on shared memory systems ( 15, 16] However, many current parallel logic languages are essentially channel or stream based and do not fully exploit the communicative possibilities of a shared ....
E.Y. Shapiro. A Subset of Concurrent Prolog and its Interpreter. Technical Report TR-003, Institute for New Generation Computer Technology (ICOT), Tokyo, 1983.
....kind of solution is not completely satisfactory because implicit parallelism lacks of two important control mechanisms: the synchronization of logic processes and the control of nondeterminism. These problems have been addressed by three well known concurrent logic languages: Concurrent Prolog [34], Guarded Horn Clauses [38] and Parlog [13] A program written in these languages is a set of clauses; the user starts the computation specifying a goal. Its evaluation is carried out by a network of very small, fine grained logic processes (i.e. atomic goals) to be proved in parallel. ....
Shapiro, E.Y. A Subset of Concurrent Prolog and its Interpreter. In Concurrent Prolog: Collected Papers, MIT Press, Vol.1 (1987) pp. 27-83.
No context found.
Ehud Y. Shapiro. A subset of Concurrent Prolog and its interpreter. Technical Report 003, Institute for New Generation Computer Technology, Tokyo, 1983.
No context found.
E. Y. Shapiro, "A Subset of Concurrent Prolog and its Interpreter," Technical Report CS83-06, Department of Applied Mathematics, Weizmann Institute of Science, Israel, Feb. 1983.
No context found.
Ehud Y. Shapiro. A subset of Concurrent Prolog and its interpreter. In Concurrent Prolog: Collected Papers, volume 1, pages 27--83. MIT Press, 1987.
No context found.
Shapiro, E. (1983). A subset of Concurrent Prolog and its interpreter. Technical Report TR-003, Institute for New Generation Computer Technology (ICOT), Tokyo.
No context found.
E. Y. Shapiro, "A Subset of Concurrent Prolog and its Interpreter", Technical Report CS8306, Department of Applied Mathematics, Weizmann Institute of Science, Rehovot, Israel, Feb. 1983.
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