Results 1  10
of
10
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 502 (16 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 282 (27 self)
 Add to MetaCart
(Show Context)
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
An Overview of Temporal and Modal Logic Programming
 Proc. First Int. Conf. on Temporal Logic  LNAI 827
, 1994
"... . This paper presents an overview of the development of the field of temporal and modal logic programming. We review temporal and modal logic programming languages under three headings: (1) languages based on interval logic, (2) languages based on temporal logic, and (3) languages based on (multi)mo ..."
Abstract

Cited by 65 (6 self)
 Add to MetaCart
(Show Context)
. This paper presents an overview of the development of the field of temporal and modal logic programming. We review temporal and modal logic programming languages under three headings: (1) languages based on interval logic, (2) languages based on temporal logic, and (3) languages based on (multi)modal logics. The overview includes most of the major results developed, and points out some of the similarities, and the differences, between languages and systems based on diverse temporal and modal logics. The paper concludes with a brief summary and discussion. Categories: Temporal and Modal Logic Programming. 1 Introduction In logic programming, a program is a set of Horn clauses representing our knowledge and assumptions about some problem. The semantics of logic programs as developed by van Emden and Kowalski [96] is based on the notion of the least (minimum) Herbrand model and its fixedpoint characterization. As logic programming has been applied to a growing number of problem domai...
Design of the Kernel Language for the Parallel Inference Machine
, 1990
"... We review the design of the concurrent logic language GHC, the basis of the kernel language for the Parallel Inference Machine being developed in the Japanese Fifth Generation Computer Systems project, and the design of the parallel language KL1, the actual kernel language being implemented and used ..."
Abstract

Cited by 49 (9 self)
 Add to MetaCart
We review the design of the concurrent logic language GHC, the basis of the kernel language for the Parallel Inference Machine being developed in the Japanese Fifth Generation Computer Systems project, and the design of the parallel language KL1, the actual kernel language being implemented and used. The key idea in the design of these languages is the separation of concurrency and parallelism. Clarication of concepts of this kind seems to play an important role in bridging the gap between parallel inference systems and knowledge information processing in a coherent manner. In particular, design of a new kernel language has always encouraged us to reexamine and reorganize various existing notions related to programming and to invent new ones.
Designing a Concurrent Programming Language
 In Proc. InfoJapan'90, Information Processing Society of
, 1990
"... This paper reviews the design and the evolution of a concurrent programming language Guarded Horn Clauses (GHC). GHC was born from a study of parallelism in logic programming, but turned out to be a simple and flexible concurrent programming language with a number of nice properties. We give both an ..."
Abstract

Cited by 7 (3 self)
 Add to MetaCart
(Show Context)
This paper reviews the design and the evolution of a concurrent programming language Guarded Horn Clauses (GHC). GHC was born from a study of parallelism in logic programming, but turned out to be a simple and flexible concurrent programming language with a number of nice properties. We give both an abstract view of GHC computation based the notion of transactions and a concrete view, namely an operational semantics, based on reductions. Also, we discuss in detail the properties of GHC such as its atomic operations, which have much to do with the design of GHC.
Extending Temporal Logic Programming with Choice Predicates Nondeterminism
 Journal of Logic and Computation
, 1994
"... In temporal logic programming, a stream can be specified by a singlevalued, timevarying predicate which, at any given moment in time, represents the corresponding element in the stream. However, due to inherent nondeterminism in logic programming, timevarying predicates do not necessarily repres ..."
Abstract

Cited by 6 (3 self)
 Add to MetaCart
(Show Context)
In temporal logic programming, a stream can be specified by a singlevalued, timevarying predicate which, at any given moment in time, represents the corresponding element in the stream. However, due to inherent nondeterminism in logic programming, timevarying predicates do not necessarily represent singlevalued relations at any given moment in time. Choice predicates are also timevarying predicates, but, in principle, they act like a dataflow node with multiple input lines which nondeterministically selects one of its inputs as output. Therefore they are guaranteed to be singlevalued at all moments in time, and they can be regarded as representing "nondeterministic" streams. Users do not define choice predicates, they are supplied automatically for all predicates defined in temporal logic programs. Inputs to choice predicates are supplied by the corresponding predicates. When the connection between choice predicates and the corresponding predicates is established, we obtain no...
Parallelism In Logic Programming
 In Information Processing 89, Proc. IFIP 11th World Computer Congress, NorthHolland/IFIP
, 1989
"... This paper discusses two aspects of parallelism in logic programming: parallelism as a formalism (often referred to as concurrency) and the implications of parallelism with regard to performance. Two alternatives for a parallel logic programming system are considered in detail. One allows programmer ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
(Show Context)
This paper discusses two aspects of parallelism in logic programming: parallelism as a formalism (often referred to as concurrency) and the implications of parallelism with regard to performance. Two alternatives for a parallel logic programming system are considered in detail. One allows programmers to describe processes and communications using concurrent logic languages, and the other attempts to exploit the parallelism of ordinary logic programs.
A Semantics for Concurrent Logic Programming Languages Based on Multiple Valued Logic
"... Abstract — In order to obtain an understanding of parallel logic thought it is necessary to establish a fully abstract model of the denotational semantics of logic programming languages. In this paper, a fixed point semantics for the committed choice, nondeterministic family of parallel programming ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
(Show Context)
Abstract — In order to obtain an understanding of parallel logic thought it is necessary to establish a fully abstract model of the denotational semantics of logic programming languages. In this paper, a fixed point semantics for the committed choice, nondeterministic family of parallel programming languages, i.e. the concurrent logic programming languages is developed. The approach is from an order theoretic viewpoint. We rigorously define a semantics for a Guarded Horn Clausestype of language because of the minimal restrictions of the language. The extension to other concurrent logic programming languages would be direct and analogous, based on their specific rules of suspension. Today’s world is replete with multitasking and parallelism in general. The content of this paper reflects a paradigm of an application of multivalued logic which is reflective of this. Keywords concurrent logic programming; multiplevalued logic; denotational semantics. I.
Fully Abstract Compositional Semantics for Logic Programs
"... compositional semantics, which exposes the interrelations between the choices of observables, compositions, and meanings. Every choice of observables and compositions determines a unique fully abstract equivalence. A semantics is fully abstract if it induces this equivalence. We study the semantics ..."
Abstract
 Add to MetaCart
compositional semantics, which exposes the interrelations between the choices of observables, compositions, and meanings. Every choice of observables and compositions determines a unique fully abstract equivalence. A semantics is fully abstract if it induces this equivalence. We study the semantics of logic programs within this framework. We find the classical Herbrandbase semantics of logic programs inadequate, since it identifies programs that should be distinguished and vice versa. We therefore propose alternative semantics, and consider the cases of no compositions, composition by program union, and composition of logic modules (programs with designated exported and imported predicates). Although equivalent programs can be in different vocabularies, we prove that our fully abstract semantics are always in a subvocabulary of that of tbe program. This subvocabulary, called the essential vocabulary, is common to all equivalent programs. The essential vocabulary is also the smallest subvocabulary in which an equivalent program can be written. The highlights of our findings are summarized in the following table: