Results 1 
8 of
8
Concurrent Constraint Programming
, 1993
"... This paper presents a new and very rich class of (concurrent) programming languages, based on the notion of comput.ing with parhal information, and the concommitant notions of consistency and entailment. ’ In this framework, computation emerges from the interaction of concurrently executing agent ..."
Abstract

Cited by 442 (15 self)
 Add to MetaCart
This paper presents a new and very rich class of (concurrent) programming languages, based on the notion of comput.ing with parhal information, and the concommitant notions of consistency and entailment. ’ In this framework, computation emerges from the interaction of concurrently executing agents that communicate by placing, checking and instantiating constraints on shared variables. Such a view of computation is interesting in the context of programming languages because of the ability to represent and manipulate partial information about the domain of discourse, in the context of concurrency because of the use of constraints for communication and control, and in the context of AI because of the availability of simple yet powerful mechanisms for controlling inference, and the promise that very rich representational/programming languages, sharing the same set of abstract properties, may be possible. To reflect this view of computation, [Sar89] develops the cc family of languages. We present here one member of the family, CC(.L,+) (pronounced “cc with Ask and Choose”) which provides the basic operations of blocking Ask and atomic Tell and an algebra of behaviors closed under prefixing, indeterministic choice, interleaving, and hiding, and provides a mutual recursion operator. cc(.L,t) is (intentionally!) very similar to Milner’s CCS, but for the radically different underlying concept of communication, which, in fact, pro’ The class is founded on the notion of “constraint logic programming ” [JL87,Mah87], fundamentally generalizes concurrent logic programming, and is the subject of the first author’s dissertation [Sar89], on which this paper is substantially based.
Semantic foundations of concurrent constraint programming
, 1990
"... Concurrent constraint programming [Sar89,SR90] is a simple and powerful model of concurrent computation based on the notions of storeasconstraint and process as information transducer. The storeasvaluation conception of von Neumann computing is replaced by the notion that the store is a constr ..."
Abstract

Cited by 259 (26 self)
 Add to MetaCart
Concurrent constraint programming [Sar89,SR90] is a simple and powerful model of concurrent computation based on the notions of storeasconstraint and process as information transducer. The storeasvaluation conception of von Neumann computing is replaced by the notion that the store is a constraint (a finite representation of a possibly infinite set of valuations) which provides partial information about the possible values that variables can take. Instead of “reading” and “writing ” the values of variables, processes may now ask (check if a constraint is entailed by the store) and tell (augment the store with a new constraint). This is a very general paradigm which subsumes (among others) nondeterminate dataflow and the (concurrent) (constraint) logic programming languages. This paper develops the basic ideas involved in giving a coherent semantic account of these languages. Our first contribution is to give a simple and general formulation of the notion that a constraint system is a system of partial information (a la the information systems of Scott). Parameter passing and hiding is handled by borrowing ideas from the cylindric algebras of Henkin, Monk and Tarski to introduce diagonal elements and “cylindrification ” operations (which mimic the projection of information induced by existential quantifiers). The se;ond contribution is to introduce the notion of determinate concurrent constraint programming languages. The combinators treated are ask, tell, parallel composition, hiding and recursion. We present a simple model for this language based on the specificationoriented methodology of [OH86]. The crucial insight is to focus on observing the resting points of a process—those stores in which the process quiesces without producing more information. It turns out that for the determinate language, the set of resting points of a process completely characterizes its behavior on all inputs, since each process can be identified with a closure operator over the underlying constraint system. Very natural definitions of parallel composition, communication and hiding are given. For example, the parallel composition of two agents can be characterized by just the intersection of the sets of constraints associated with them. We also give a complete axiomatization of equality in this model, present
Replay, Recovery, Replication, and Snapshots of Nondeterministic Concurrent Programs
 In ACM Symposium on Principles of Distributed Computing
, 1990
"... The problem of replaying computations of nondeterministic concurrent programs arises in contexts such as debugging and recovery. We investigate the problem for an abstract model of concurrency, which generalizes dataflow networks, processors with shared variables, and logic programming models of ..."
Abstract

Cited by 5 (0 self)
 Add to MetaCart
The problem of replaying computations of nondeterministic concurrent programs arises in contexts such as debugging and recovery. We investigate the problem for an abstract model of concurrency, which generalizes dataflow networks, processors with shared variables, and logic programming models of concurrency. We say that nondeterminism is visible if the state is determined, up to some (appropriately defined) notion of equivalence, by the external behavior. We show that if nondeterminism is visible then replay is achievable using a onestep lookahead sequential simulation algorithm. If the program has an additional monotonicity property called stability then recovery is possible without simulating the original computation, by restarting the program from a certain easily constructed state. Also, for stable programs with visible nondeterminism, a process composed of identical parallel processes has the same external behavior as each of its components. Hence high crashfailure res...
Concurrent Constraint Logic Programming on Massively Parallel SIMD Computers
 Logic Programming: Proceedings of the 1993 International Symposium
, 1993
"... With the advent of costeffective massively parallel computers, researchers conjecture that the future constraint logic programming system is composed of a massively parallel constraint solver as the backend with a concurrent inference engine as the frontend [Coh90]. This paper represents an attem ..."
Abstract

Cited by 4 (2 self)
 Add to MetaCart
With the advent of costeffective massively parallel computers, researchers conjecture that the future constraint logic programming system is composed of a massively parallel constraint solver as the backend with a concurrent inference engine as the frontend [Coh90]. This paper represents an attempt to build a constraint logic programming system on a massively parallel SIMD computer. A concurrent constraint logic programming language called Firebird is presented in this paper. Firebird can handle finite domain constraints and supports both concurrency and dataparallelism. As a result, it is suitable for both multiprocessors and SIMD computers. Concurrency arises from the stream andparallelism of committedchoice logic programming languages. In a nondeterministic derivation step, one of the domain variables is selected to create a choice point. All possible alternatives are attempted in parallel. Dataparallelism is exploited in the resulting orparallel execution. Firebird is curren...
LFG qua concurrent constraint programming
"... ions j mm  Applications j j  Constants j x  Lambda variables j X  Variables (Resources) q ::= r ; m Primitive Resource (1.7) The only "constraint" related to semantic projections is the primitive resource r ; m. Unlike constraints discussed above, such an atom is not allowed to b ..."
Abstract
 Add to MetaCart
ions j mm  Applications j j  Constants j x  Lambda variables j X  Variables (Resources) q ::= r ; m Primitive Resource (1.7) The only "constraint" related to semantic projections is the primitive resource r ; m. Unlike constraints discussed above, such an atom is not allowed to be replicated freely; it is a "linear" atom, discussed below. Such an atom entails only itself; that is r ; m ` a iff a j r ; m. 3 Because of the use of universal quantification (discussed below), unification problems of the form m = m 0 may arise, requiring higherorder unification to be performed. Higherorder unification is undecidable (?). However, as in all 3 Two lambda terms are considered equivalent if they are interconvertible using ff\Gamma; fi \Gamma and jconversion. Concurrent constraint programming 15 the previous examples, the use of higherorder unification in LFG is extremely limited. In essence, it is used only for "patternmatching" against linear terms (terms with...
Performance of a DataParallel Concurrent Constraint Programming System
 In Proceedings of the First International Symposium on Parallel Symbolic Computation
, 1995
"... : Firebird [12] is a dataparallel concurrent constraint programming system. It is shown that finite domain constraint languages can be implemented on massively parallel SIMD machines. Firebird has been further enhanced with parallel backtracking capability and the design of the DataParallel Ab ..."
Abstract
 Add to MetaCart
: Firebird [12] is a dataparallel concurrent constraint programming system. It is shown that finite domain constraint languages can be implemented on massively parallel SIMD machines. Firebird has been further enhanced with parallel backtracking capability and the design of the DataParallel Abstract Machine, the basis of Firebird's implementation, has been presented in [13]. An almost complete implementation has been built on a DECmpp 12000 Sx100 z massively parallel computer with 8,192 processor elements and some preliminary performance results are given in this paper. A speedup of 2 orders of magnitude is possible when we compare the performance using 8,192 processor elements and the performance using a single processor element of the same machine. Furthermore, the speedup is scalable, provided that the problem size is large enough for effective exploitation of orparallelism. On the other hand, we measure the effects of several control strategies and optimizations o...
LFG as Concurrent Constraint Programming
, 1999
"... is provided in screenviewable form for personal use only by members of MIT CogNet. Unauthorized use or dissemination of this information is expressly forbidden. If you have any questions about this material, please contact ..."
Abstract
 Add to MetaCart
is provided in screenviewable form for personal use only by members of MIT CogNet. Unauthorized use or dissemination of this information is expressly forbidden. If you have any questions about this material, please contact