| E. Shapiro, "Concurrent Prolog: A Progress Report", IEEE Computer, August 1986, pp. 44--59, 1986. |
....in Haskell. The problem is that, in functional languages, we can only make sequential access to an in nite list, and computation stalls whenever a bottom is encounted. Contrary to this, if we use a logic programming language with guarded clauses and committed choice such as Concurrent Prolog [7], PARLOG[2] and (Flat) GHC (Guarded Horn Clauses) 12,13] we can directly express the behavior of an IM2 machine as a program, and execute it on an ordinary computer. The ability of an IM2 machine to wait for the next character from multiple heads corresponds to parallel execution of guards, and ....
....programming languages, and conclusions As we have seen, our implementation of IM2 machines use the notion of guarded clauses and committed choice. Therefore, other parallel logic programming languages with guarded clauses and committed choice nondeterminism, like PARLOG[2] and Concurrent Prolog[7], can also be used instead of GHC. SICStus Prolog, which is a dialect of Prolog, contains the primitive freeze which blocks a goal until a variable is instantiated. Though freeze does not have enough expressive power, when we combine when and nonvar primitives, one can block a goal until ....
Ehud Shapiro. Concurrent Prolog: A progress Report. IEEE Computer, 19(8):44-58, 1986. Also in [6], Chapter 5.
....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 equivalent to Oc, which is the simplest of the concurrent logic languages. A ....
Shapiro, E. Y. Concurrent Prolog: A Progress Report. Computer, Vol. 19, No. 8 (1986), pp. 44--58.
....poorly than they possibly can. Concurrent logic programming was born in early 1980 s from the process interpretation of logic programs [34] Relational Language [7] the first concrete proposal of a concurrent logic language, was followed by a succession of proposals, namely Concurrent Prolog [20], PARLOG [8] and Guarded Horn Clauses (GHC) 27] KL1 [29] the Kernel Language of the Fifth Generation Computer Systems (FGCS) project [22] was designed based on GHC by featuring (among others) mapping constructs for concurrent processes. To be precise, KL1 is based on Flat GHC [28] a subset of ....
....interpreter in Lisp around 1960 [13] Prolog interpreters in Prolog were available and widely used in 1970 s; an example is the interpreter of the de facto standard DEC 10 Prolog. Meta interpreters of Concurrent Prolog can be found in various papers. Figure 1 shows two versions, the first one in [20] and the second in [17] Program (a) is very similar to a Prolog interpreter in Prolog, but it relies on the large built in primitive, clause 2 (clause with two arguments) that performs synchronization, evaluation of clause guards, and committed choice. The only thing reified by the ....
Shapiro, E. Y., Concurrent Prolog: A Progress Report. IEEE Computer, Vol. 19, No. 8 (1986), pp. 44--58.
....loses access to them unless it retains a copy of them. As will be discussed later, our type systems have dealt with read write capabilities of logical variables and the number of access paths (occurrences) of each variable. Although not as widely recognized as it used to be, Concurrent Prolog [30] designed in early 1980s was the first simple high level language that featured channel mobility in the sense of the # calculus. When the author proposed Guarded Horn Clauses (GHC) 36] 37] as a simplification of Concurrent Prolog and PARLOG [8] the principal design constraint was to retain ....
Shapiro, E. Y., Concurrent Prolog: A Progress Report. IEEE Computer, Vol. 19, No. 8 (1986), pp. 44--58.
....of parallel computation to the programmer. Such a model must present parallel programming constructs at a sufficiently high level of abstraction and must be easy to implement efficiently. A number of programming languages have attempted to meet these demands, including: CSP [6] Concurrent Prolog [7], Strand [8] and Linda [9, 10] The requirement for easy performance evaluation of different machines and programming environments is clearly related to the issue of portability. A benchmark for parallel architectures must also evaluate features at an appropriate level of abstraction and must be ....
E. Shapiro, "Concurrent Prolog: A Progress Report," IEEE Computer, pp. 44-58, August 1986.
....have given above can be used to discuss whether information sent by a sender process is eventually delivered to a receiver or not. 4. Some Properties of Flat GHC 4. 1 Atomic Operations One of the motivations that lead us to design GHC was the examination of atomic operations in Concurrent Prolog [19]. Concurrent Prolog (including its o springs) and the language cc(#; 16] have the notion of atomic publication, in which the publication of a constraint by a process is done upon reduction and only when it does not cause inconsistency. Atomic publication may have to test and set a number of ....
....to implement the guard mechanism of full GHC for these reasons, and nally decided to allow only prede ned predicates to be called from a guard. This was our 6 rst approximation to Flat GHC, which was clearly in uenced by the subsetting of Concurrent Prolog to Flat Concurrent Prolog [19]. However, the above mentioned way of subsetting was not quite satisfactory for a rather idealized programming language like GHC, because it depends on the arbitrary choice of prede ned predicates. We felt that it would be much better to state what properties are sucient for a predicate to be ....
Shapiro, E. Y., Concurrent Prolog: A Progress Report. Computer, Vol. 19, No. 8 (1986), pp. 44-58.
....building block never flow out. The Scheduling building block has two input ports, but other building blocks have one input port in Fig. 2. This architecture can be properly represented by using a backward chaining predicate logic based language similar to GHC [Ued 85] Concurrent Prolog [Sha 86] or Parlog [Cla 86] These languages are suited to describing data stream processing. So the pipe connection models can be expressed directly. A language for this architecture, which is called SNAP (Structured Network programming by And Parallel language) was defined by Kanada [Kan 00b] In ....
Shapiro, E.: Concurrent Prolog: A Progress Report, IEEE Computer, August 1986, pp. 44--59, 1986.
....Prolog [8] since it is well suited for expressing even a complex set of rules over an extensive database in an easy way. The disadvantage though lies on the performance side, due to Prolog s depth first search algorithm with backtracking. Various parallel Prolog languages, e.g. Concurrent Prolog [27] and PARLOG [9] have been worked out to overcome this disadvantage. Evaluation time decreases compared to sequential forms of Prolog, however, performance of parallel implementations is still not high enough to allow for control of autonomous systems in real time. As one cannot do without ....
....[13] is the base concept of Prolog, a high level, nonprocedural programming language. Furthermore, the language was not developed for a special computer architecture, especially not with the von Neumann architecture in mind. Prolog contains highly parallel structures (OR and AND parallelism [27]) at the level of simple predicates as well as at the level of rules. The dataflow architecture on the other hand is a parallel architecture that supports high performance execution of high level programs compiled into semantically equivalent graphs [32, 30] To exploit the performance potential ....
E. Shapiro, "Concurrent Prolog: A progress report", Fundamentals of Artificial Intelligence, W. Bibel and Ph. Jorrand, Springer Verlag, 1986, pp. 277-313
....Prolog, a high level language for deductive reasoning of rules [7] is commonly used. The disadvantage of Prolog, however, is that evaluation is slow, due to its depth first search algorithm and backtracking. Although evaluation time decreases with parallel forms of Prolog implementations [9, 21] performance gain still does not allow for control of autonomous systems in realtime. Therefore, a strong need for increasing the performance by multi processing under well balanced load distribution remains. The dataflow architecture, on the other hand, is a parallel architecture that supports ....
....[14] It is a high level, non procedural programming language requiring no specialized computer architecture, i.e. not absolutely the von Neumann architecture. Parallelism in Prolog can easily be found at the level of rules (OR parallelism) as well as in the rules themselves (AND parallelism) [21], i.e. at the level of the literals of the rule, while it is not that simple to gain parallelism by splitting a Prolog program into different processes. By the dataflow architecture, in contrast to a von Neumann multiprocessor architecture, fine grained parallelism in a program is immediately ....
E. Shapiro, "Concurrent Prolog: A progress report" Fundamentals of Artificial Intelligence W. Bibel and Ph. Jorrand, Springer Verlag, 1986, pp. 277-313
....to update. The same requirement for complete information about object connectivity was present, and satisfied, in ThingLab, so currently we don t regard this as a major stumbling block for our intended applications. Another technique for representing objects, used in e.g. Concurrent Prolog [32] and Vulcan [19] is to represent an object as a process that consumes messages, recursively calling itself with the next state of the object as an argument. It appears that this technique could be used in HCLP as well, if HCLP were suitably extended (for example, with concurrency, a commit ....
Ehud Shapiro. Concurrent Prolog: A Progress Report. IEEE Computer, 19(8):44--58, August 1986.
....time, the interest was directed to parallel implementations. In the quest for performance the developers gradually removed properties of traditional logic programming languages. Non determinism was abandoned at an early stage and the systems were then restricted to handle only flat guards [21, 27]. Some systems went even further and removed general unification, disallowed multiple readers of variables, and included imperative variables [10, 9] 3.1 KLIC One of the systems that kept the logical variables in the language is KL1. The languages was developed at ICOT in the Fifth Generation ....
....be harmful since a worker will have to wait for other workers to perform their tasks before the next generation of border cells can be computed. 3. 3 Deep guards Deep guards were used in the early committed choice languages for example Guarded Horn Clauses (GHC) Concurrent Prolog (CP) and PARLOG [8, 21, 28, 26]. These languages used deep guards for complex deterministic tests. In CP the guard computation was allowed to make local bindings to external variables. This introduced a complexity in the implementation. In PARLOG the local bindings of external variables was restricted to the output arguments ....
E. Shapiro. Concurrent Prolog: A Progress Report, chapter 2, pages 27--83. MIT Press, 1987.
....at run time, cost measures are not possible. Explicit logic languages are those in which programmers must specify the parallelism explicitly [175] They are also called concurrent logic languages. Examples of languages in this class are PARLOG [102] Delta Prolog [162] Concurrent Prolog [174], GHC[195] and Strand [90] Concurrent logic languages can be viewed as a new interpretation of Horn clauses, the process interpretation. According to this interpretation, an atomic goal C can be viewed as a process, a conjunctive goal C1, Cn as a process network, and a logic variable ....
E. Shapiro. Concurrent Prolog: A progress report. IEEE Computer, 19:44--58, August 1986.
....and semantic constraints. To achieve this, the system must process these constraints in parallel while supporting don t know nondeterminism. Although stream programming based on don t care non determinism using committed choice concurrent logic programming language such as Concurrent Prolog[10] and GHC[11] can also execute these goals in parallel, the difficulty is that streams can t directly deal with bidirectional flow of information. As a result, the program would become much more complicated compared to PARCS. This is especially evident when it is impossible for the programmer to ....
Shapiro, E., "Concurrent Prolog: A Progress Report, " in Concurrent Prolog (E. Shapiro, ed.), vol. 1, pp. 157--187, The MIT Press, 1987.
....a single rule. All subgoals of these goals must respect the above order. The sip formalism does not allow us to consider the resolvent that is the set of all subgoals and then pick an arbitrary order. This is precisely what committed choice languages such as Parlog [CG86] and Concurrent Prolog [Sh86], the freeze primitive in Nu Prolog [Na87] and some other proposed methods, e.g. in [Co83] achieve by dynamically suspending and starting goals. The ordering is controlled typically by variable annotations that, for example, suspend a goal until one of its variables is instantiated [CG86, Sh86, ....
....Prolog [Sh86] the freeze primitive in Nu Prolog [Na87] and some other proposed methods, e.g. in [Co83] achieve by dynamically suspending and starting goals. The ordering is controlled typically by variable annotations that, for example, suspend a goal until one of its variables is instantiated [CG86, Sh86, Na87]; it can also be controlled by a sophisticated run time scheduler [Co83] Methods that use annotations typically sacrifice completeness. Completely unrestricted dynamic re ordering carries a high run time overhead. Nevertheless, there may be situations where such approaches perform better than any ....
E. Shapiro, Concurrent Prolog: A Progress Report. In IEEE Computer, pages 44--58, August 1986.
....non deterministic concurrent constraint logic programming languages. Constraint Pandora is essentially a concurrent version of the CLP scheme [9] based on the execution model of Pandora [1] Unlike the committed choice concurrent logic languages, such as Parlog [8] GHC [18] and Concurrent Prolog [17], Constraint Pandora supports both don t know and don t care nondeterminisms, allowing the generation of multiple answers to a query. We use the VHLP scheme as a starting point. Re execution is not suitable for our setting since process creation and inter process communication incur overheads in ....
E.Y. Shapiro. Concurrent Prolog: a progress report. IEEE Computer, 19(8):44--58, 1986.
.... 2, 23, 25, 28, 34, 38, 42, 47, 59, 90, 96, 103, 106] The non determinate choice of clauses are distinguished into don t know non determinate choice where the computation is able to return and take another route (or exploit alternatives in or parallel) and don t care non determinate choice 2 [98, 89, 92] where the computation makes a definite (but arbitrary) choice and prunes away the alternatives from the computation. While the choice of which goal to resolve in SLD resolution is defined by a syntactic selection function, an AKL computation follows the Andorra principle proposed by D.H.D. Warren ....
....state before q 2 that are incorrect since the values and aliases possibly generated by r 2 are not considered. Also, the behaviour of the guard g(C) is different if the guard is quiet or noisy, something which is not known to an analyser for Prolog. Codognet et al. 26] in their analysis of FCP [89, 95] use a local fixpoint procedure to model concurrency. We use a similar intuition but instead introduce a loop back to cover the possible data flow of the concurrent program. An analysis framework for Horn clauses must be modified to be applicable to AKL. In particular the ordering of a computation ....
E. Shapiro. Concurrent prolog: a progress report. Internal report CS-86-10, Weizmann Institute, April 1986.
....a language which can handle complex descriptions, uncertain data and dynamic process behavior in an efficient and easy way. There exist several models which deal with these problems and we think a promising concept is ConFuP [10, 9] ConFuP combines the parallel semantic of Concurrent Prolog (CP) [20] with the fuzzy semantic of Support Logic Programming (SLOP) 2] Thus, ConFuP is a concurrent logic programming language which offers a parallel process model and a fuzzy semantic. The application of concurrent logic programming languages like CP and FCP, a subset of CP, in the field of system ....
....(not every time ) an attractive alternative to conventional control theory [16, 14] 3 ConFuP In this section we give an overview about the syntax and the computation model of ConFuP. 3. 1 Guarded Support Horn Clauses ConFuP is a combination of the concurrent logic programming language CP [20], with the fuzzy semantic of support pairs [1, 2] In contrast to other approaches of fuzzy logic languages [7] ConFuP joins a concurrent logic language and its process oriented semantic with the feasibility of describing uncertainty. In this approach we can easily handle infinite computations. ....
Ehud Shapiro. Concurrent prolog: A progress report. IEEE Computer, 19(8):44--58, 1986.
.... the difficulty of efficiently coping in a search based execution model with conflicting bindings being made to shared variables by goals executed in and parallel [6] Furthermore, co routining and and parallel Prologs, like NU Prolog [12] are no more expressive than the flat CLP languages like FCP [13] in exhibiting stream and parallelism and are incapable of sustaining other important kinds of systems handling capability required by concurrent knowledge based systems like fair scheduling of sub tasks within the whole computation. The same applies to other attempts to reconcile stream ....
E. Shapiro, "Concurrent Prolog: A Progress Report," Technical Report CS86-10, Department of Computer Science, The Weizmann Institute of Science, Rehovot, Israel, (April 1986).
....is implicit in data structure access: a process that requests an element which has not yet been generated blocks until a producer creates it. Some notable examples of distributed data structures are the blackboard object in Shared Prolog[2] stream abstractions in Flat Concurrent Prolog[20], Concurrent Smalltalk s distributed objects[13] and its closely related variant Concurrent Aggregates[7] the I structure in Id[4] and C.Linda s flat tuple space[6] In this paper, we describe a parallel programming language (called T S) whose fundamental communication device is a significant ....
Ehud Shapiro. Concurrent Prolog: A Progress Report. IEEE Computer, 19(8):44--60, August 1986.
....logic programming. There the consistency check is usually called atomic unification (this explains the terminology atomic tell : unification on the Herbrand universe corresponds, roughly, to adding a constraint to the store) An example of a language with atomic unification is Concurrent Prolog ([Sha86]) an example of a language with eventual tell is the language of Guarded Horn Clauses ( Ued87] Note that the inconsistent store is a situation of no recovery, since it is the top of the lattice, and the store can only evolve monotonically. Inconsistency is usually regarded as the most ....
E. Y. Shapiro. Concurrent Prolog: A progress report. Computer, 19(8):44--58, 1986.
....on many different processors repeatedly write on the same page. Migrating these processes to the same processor is one possible cure to this problem. 3.8. Shared logical variables Most concurrent logic programming languages (PARLOG [Clark and Gregory 1986; Gregory 1987] Concurrent Prolog [Shapiro 1986, 1987] Flat Concurrent Prolog) use shared logical variables as communication channels. Shared logical variables have the single assignment property: once they are bound to a value (or to another variable) they cannot be changed. In sequential logic languages, variables may receive another ....
....however) Single assignment is not a severe restriction, because a logical variable can be bound to a structure containing one or more other, unbound variables, which can be used for future communication. In fact, many communication patterns can be expressed using shared logical variables [Shapiro 1986]. Synchronization in concurrent logic languages resembles data flow synchronization: processes can (implicitly) wait for a variable to be bound. Shared logical variables provide a clean semantic model, resembling normal logic variables. Addressing also is the same for both types of variables ....
[Article contains additional citation context not shown here]
Shapiro, E., Concurrent Prolog: A Progress Report, IEEE Computer, Vol. 19, No. 8, pp. 44-58, Aug. 1986.
....network, where not pixels but patterns of pixels are processed. Let us consider some more examples of the network activation, shown in Figure 3. To simplify the NCL queries, when entering the input image, the following Prolog predicate is used: on( on( X T] pix(X,on) on(T) 1. on([4, 11, 19, 20, 27, 36, 43, 44, 52, 59]) out(X) X=Vertical line 2. on( 1, 2, 3, 4, 13, 14, 15, 16] out(X) X=Horizontal line 3. on( 1, 9, 18, 26, 35, 43, 52, 60] out(X) X=Vertical line 4. on( 1, 10, 19, 28, 37, 46, 55, 64] out(X) X=pat(pat(pat(on, Gamma 1, Gamma 2,on) Gamma 3, Gamma 4, pat(on, Gamma 5, ....
....cases both of them at the same time, e.g. in the image processing example) 5.3 Parallelism Parallelism is an inherent feature of connectionist networks (as a part of the PDP paradigm) It is also important in some purely symbolic areas, such as Logic Programming. PARLOG [1] Concurrent Prolog [11] and GHC [14] are typical examples of applying parallel processing approaches in a pure symbolic field. However the main purpose of these works is not integrating symbolic and parallel computation in a consistent way, but rather improving the efficiency of the implementations. To achieve this, ....
Shapiro, E. Concurrent PROLOG: A Progress Report, in: Lecture Notes in Computer Science No. 232 (Springer-Verlag, 1986), 277-313.
....n concurrent threads of execution within a local namespace. The spawned processes communicate either through shared data or through explicit communication primitives (e.g. the message passing operators found in CSP) ffl A guarded command[28] construct found in languages such as Concurrent Prolog[55]. A guarded command is a program structure that consists of a series of statements each of which is prefixed by some boolean expressions (called guards) A statement is eligible for execution only when all of its associated boolean expressions are true. If several guards in different statements ....
....into the map expression (map S 1 S 2 : S n ) A discussion on interprocess communication structures is deferred until Section 4.3. 4.1.4 Non Deterministic Program Constructs Guarded clauses are used extensively in several concurrent logic programming languages. In Concurrent Prolog (CP)[55], guards serve as the primary synchronization and control construct. A (flat) guarded clause is a statement of the form A G 1 G 2 : Gm j B 1 B 2 : B n (m; n 0) The commit operator (j) separates the right hand side of the rule into a guard and a body. A procedural interpretation of a ....
Ehud Shapiro. Concurrent Prolog: A Progress Report. IEEE Computer, 19(8):44--60, August 1986.
....appealing. In particular, one can express negation explicitly by rules that replace (unsatisfiable) predicates with false, thus pruning undesired branches of the search tree. Our aim was to get a working parallel implementation of rewriting and narrowing. Writing in Flat Concurrent Prolog (FCP) [18] enabled us to express our algorithms in programs which were usually not much longer than their exact verbal formulation, and which could easily be modified to incorporate additional features. Rewrite rules are stated in a form that includes a specification of the desired rewriting strategy (e.g. ....
....narrowing, turns out to be incomplete even for canonical systems; that is, sometimes solutions are lost. R ety [16] adds certain positions for consideration to assure completeness. 2. 3 Flat Concurrent Prolog We give here only the bare essentials of FCP for a more detailed treatment see [18, 20]. In FCP, constants are integers, reals or strings. Variables are distinguished by an initial capital letter or by an underscore (e.g. X, Var, 14) They may have a read only annotation (e.g. X ) A compound term is either of the form T1(T2 ; Tn) n 0, where the T1, Tn are each a ....
Shapiro, E., "Concurrent Prolog: A progress report ", IEEE Computer, 1986.
....Connection Machine [5] Concurrent PROLOG has been developed inside the Japanese fifth generation computing project. It allows searches to be performed in parallel in order to compute billion of logical inferences per second. It is the basis for the kernel language ICOT s parallel inference engine [6]. Pictorial languages have also been developed in order to handle high level vision problems. They allow to define pictorial objects and operations on them, as well icon guided navigation throughout the pictorial data bases [7,8,9] Object oriented parallel languages are recently under ....
E.Y.Shapiro, "Concurrent Prolog: A progress report", Computer, Vol.9, No.8, pp.44-58, 1986.
....time, the interest was directed to parallel implementations. In the quest for performance the developers gradually removed properties of traditional logic programming languages. Non determinism was abandoned at an early stage and the systems were then restricted to handle only flat guards [58, 68]. Some systems went even further and removed general unification, disallowed multiple readers of variables, and included imperative variables [22, 21] 10.3.1 KLIC One of the systems that kept the logical variables in the language is KL1. The languages was developed at ICOT in the Fifth ....
....harmful since a worker will have to wait for other workers to perform their tasks before the next generation of border cells can be computed. 10.3. 3 Deep guards Deep guards were used in the early committed choice languages for example Guarded Horn Clauses (GHC) Concurrent Prolog (CP) and PARLOG [15, 58, 70, 66]. These 184 Related Work languages used deep guards for complex deterministic tests. In CP the guard computation was allowed to make local bindings to external variables. This introduced a complexity in the implementation. In PARLOG the local bindings of external variables was restricted to the ....
E. Shapiro. Concurrent Prolog: A Progress Report, chapter 2, pages 27--83. MIT Press, 1987.
....for example, via semaphores. The advantages of using tuple spaces here are two fold: 1) it allows us to retain a well defined functional core about which we can reason formally; 2) more importantly, different structured assignment paradigms (e.g. I structures [1] readonly logic variables [20], accumulators [18] etc. can be expressed using simple and easily implemented patterns of tuple operations. To make our discussion more concrete, consider the implementation of an I structure, a write once shared data object in our kernel language. We ll model an I structure as a tuple space. ....
Ehud Shapiro. Concurrent Prolog: A Progress Report. IEEE Computer, 19(8):44--60, August 1986.
....translation leads to a computation which resembles SLD resolution, and thereby the basic programming paradigm of pure Prolog. Pure Horn clause programs can also be executed by the following meta interpreter, which is derived from the Or parallel Prolog interpreter in Concurrent Prolog by Ken Kahn [11]. The predicate clauses 2 returns a list of clauses for a goal, and append 3 is the directional append from two input lists to one output list. The major difference is that the following is a full fledged all solutions interpreter as opposed to the single solution interpreter in Concurrent ....
Ehud Shapiro. Concurrent Prolog: A progress report. IEEE Computer, 8(19):44--58, August 1986.
....to numeric computation are the symbolic approaches in AI the methods for problem solving, including automatic deduction. There is another research direction integrating both approaches. A considerable part of this research is in the field of Logic Programming. PARLOG [3] Concurrent Prolog [13] and GHC [16] are typical examples of applying PDP approaches in a pure symbolic field. However the main purpose of these works is not integrating symbolic and parallel computation in a consistent way, rather improving the efficiency of the implementations. An interesting approach is proposed by ....
Shapiro, E. Concurrent PROLOG: A Progress Report, in: Lecture Notes in Computer Science No. 232, Springer-Verlag, 1986, 277-313.
....analysis are concurrent object oriented languages, for which no formal static analysis method has been established. 1 Introduction Recent high level concurrent programming languages, including concurrent object oriented programming languages[1] 20] 19] concurrent logic programming languages[18][14], and Concurrent ML(CML) 13] are based on computational models where multiple processes (or concurrent objects) perform local computation, exchanging values via asynchronous or synchronous communication. Although such computational models provide potentially more powerful abstractions for ....
Shapiro, E., "Concurrent Prolog: A Progress Report," in Concurrent Prolog (E. Shapiro, ed.), vol. 1, pp. 157--187, The MIT Press, 1987.
....the problem of portability and uniform programming style, there has been a significant push to develop languages which offer a sufficiently high level of abstraction and yet are easily and efficiently implemented on a wide variety of machines. Languages such as CSP [6] Concurrent Prolog [7], and Strand [8] were developed for this purpose. Because of the problems mentioned above, pervious work reported in the area of benchmarking of parallel machines has tended to be in either of two directions. The first one is comparing different versions of the same machine, or different ....
E. Shapiro, "Concurrent Prolog: A Progress Report," IEEE Computer, pp. 44-58, August 1986.
....examined. 5. Related Work and Conclusions Besides C.Linda and ts scheme, distributed data structures are available in a number of explicitly parallel programming languages. Some notable examples are the blackboard object in Shared Prolog[2] stream abstractions in Flat Concurrent Prolog[33], Concurrent Smalltalk s distributed objects[17] and its closely related variant Concurrent Aggregates[9] and the I structure in Id[4] ts scheme is distinguished from these other efforts in several important respects. By way of comparison, synchronization in other related languages takes place ....
Ehud Shapiro. Concurrent Prolog: A Progress Report. IEEE Computer, 19(8):44--60, August 1986.
....; v n g ae solutions(H) omitting V 0 fv 1 ; vng Note that solutions(H) omitting V 0 fv 1 ; vn g contains valuations only for the variables with read only annotations. Within the logic programming community, read only annotations were originally introduced in Concurrent Prolog [Shapiro 86] for an entirely different purpose than ours, namely for the control of communication and synchronization among networks of processes. In our work so far, having a blocked solution is an unusual and undesirable state, which would arise only if a design or other error had been made in specifying ....
....is written in CLP(R) allowing it to take advantage of the underlying CLP(R) constraint solver and backtracking facility. It has two phases. The code for the interpreter is given in Appendix A. The first phase is a meta interpreter, much like traditional Prolog meta interpreters [Sterling Shapiro 86] It accepts a goal and either satisfies it immediately, or looks up the goal in the rule base, reduces it to subgoals, and recursively solves the subgoals. Required constraints are passed on to the CLP(R) solver immediately, while non required constraints are simply pushed onto a stack. ....
Ehud Shapiro. Concurrent Prolog: A Progress Report. IEEE Computer, 19(8):44--58, August 1986.
....concurrent constraint logic programming languages. Constraint Pandora is essentially a concurrent version of the CLP scheme [13] based on the execution model of Pandora [1] Unlike the committed choice concurrent logic languages, such as Parlog [11] GHC [28] and Concurrent Prolog [23], Constraint Pandora supports both don t know and don t care non determinisms, allowing the generation of multiple answers to a query. In order to avoid the overhead of process creation and inter process communication, we minimize re execution and propose to use computation context that is saved ....
E.Y. Shapiro. Concurrent Prolog: a progress report. IEEE Computer, 8(4):44--58, 1986.
....Furthermore execution of Prolog in parallel does not by itself provide a mechanism for synchronising execution of goals upon dataflow, for fair multi tasking, nor for interactive task control. 5. Knowledge Based Systems in CLP Languages The and parallelism of the CLP languages like GHC [32] FCP [26], and Parlog [13] allows them to support concurrent execution of goals with shared variables even on a single processor implementation. They can synchronise goal execution via dataflow constraints and by the combination of suspending primitives and sequencing constructs like guards. Most CLP ....
E. Shapiro, "Concurrent Prolog: A Progress Report," Technical Report CS86-10, Department of Computer Science, The Weizmann Institute of Science, Rehovot, Israel, (April 1986).
No context found.
E. Shapiro, Concurrent Prolog: A progress report, in: E. Shapiro (Ed.), Concurrent Prolog, Vol. I, MIT Press, Cambridge, MA, 1987, pp. 157--187.
No context found.
E. Shapiro. Concurrent prolog: a progress report. In E. Shapiro, editor, Concurrent Prolog (vol. I), pages 157--187. MIT Press, Cambridge, Massachusetts, 1987.
No context found.
E. Shapiro, Concurrent Prolog: A progress report, in: E. Shapiro (Ed.), Concurrent Prolog, Vol. I, MIT Press, Cambridge, MA, 1987, pp. 157--187.
No context found.
E. Shapiro, "Concurrent Prolog: A Progress Report", IEEE Computer, August 1986, pp. 44--59, 1986.
No context found.
Ehud Shapiro. Concurrent Prolog: A progress report. IEEE Computer, 19(8):44--58, August 1986.
No context found.
Ehud Shapiro. Concurrent Prolog: A Progress Report. IEEE Computer, pages 44--58, August 1986.
No context found.
Shapiro, E., "Concurrent Prolog: A Progress Report ", IEEE Computer, August 1986, pp. 44--59, 1986.
No context found.
Shapiro, E. 1987. Concurrent prolog: a progress report. In Concurrent Prolog (vol. I), ed. E. Shapiro, 157--187. Cambridge, Massachusetts: MIT Press.
No context found.
Shapiro, E. (1986). Concurrent Prolog: A progress report. Computer, 19(8):44--58.
No context found.
Ehud Shapiro. Concurrent Prolog: A Progress Report. IEEE Computer, 19(8):44--60, August 1986.
No context found.
E.Y. Shapiro. Concurrent Prolog: A Progress Report. IEEE Computer, 1986.
No context found.
Shapiro, E. (1986). Concurrent Prolog: A progress report. Computer, 19(8):44--58.
No context found.
Shapiro, E. (1986). Concurrent prolog: A progress report. Computer, 1986(8):44--58. also in [Bibel and Jorrand, 1986].
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