Academia.edu no longer supports Internet Explorer.
To browse Academia.edu and the wider internet faster and more securely, please take a few seconds to upgrade your browser.
1995
…
40 pages
1 file
Abstract. Concurrent Constraint Programming (CCP) has been the subject of growing interest as the focus of a new paradigm for concurrent computation. Like logic programming it claims close relations to logic. In fact CCP languages are logics in a certain sense that we make precise in this paper.
Proceedings of the 18th …, 1991
Concurrent constraint programming Sar89,SR90] is a simple and powerful model of concurrent computation based on the notions of store-asconstraint and process as information transducer. The store-as-valuation conception of von Neumann computing is replaced by the notion that the store is a constraint (a nite representation of a possibly in nite 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 data-ow and the (concurrent)(constraint) logic programming languages. This paper develops the basic ideas involved in giving a coherent semantic account of these languages. Our rst 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 \cylindri cation" operations (which mimic the projection of information induced by existential quanti ers).
[1993] Proceedings Eighth Annual IEEE Symposium on Logic in Computer Science
We propose a framework for the analysis of concurrent constraint programming (ccp). Our approach is based on simple denotational semantics which approximate the usual semantics in the sense that they give a superset of the input-output relation of a ccp program. Analyses based on these semantics can be easily and efficiently implemented using standard techniques from the analysis of logic programs. 1 Introduction Concurrent constraint programming (ccp) [12, 13, 14] is a new programming paradigm which elegantly combines logical concepts and concurrency mechanisms. The computational model of ccp is based on the notion of constraint system, which consists of a set of constraints and an entailment (implication) relation. Processes interact through a common store. Communication is achieved by telling (adding) a given constraint to the store, and by *This work has been partially supported by ESPRIT BRA
1997
Compositional semantics allow to reason about programs in an incremental way, providing the basis for the development of modular data-flow analysis. The major drawback of these semantics is their complexity. This observation applies in particular for concurren~ constralm programming ( ccp ). ln this work "-e consider an operational semantics of ccp by using sequences of pairs of finite constramts to represent ccp computatiOns which is equivalent to a denotational semantics, providing the basis for the development o.f an abstract interpretation framework for the analy~i~ of ccp .
Artificial Intelligence, 1999
Theoretical Computer Science, 1997
Concurrent constraint programming (ccp), like most of the concurrent paradigms, has a mechanism of global choice which makes computations dependent on the scheduling of processes. This is one of the main reasons why the formal semantics of ccp is more complicated than the one of its deterministic and local-choice sublanguages. In this paper we study various subsets of ccp obtained by adding some restriction on the notion of choice, or by requiring con uency, i.e. independency from the scheduling strategy. We show that it is possible to de ne simple denotational semantics for these subsets, for various notions of observables. Finally, as an application of our results we develop a framework for the compositional analysis of full ccp. The basic idea is to approximate an arbitrary ccp program by a program in the restricted language, and then analyze the latter, by applying the standard techniques of abstract interpretation to its denotational semantics.
Lecture Notes in Computer Science, 1996
Concurrent constraint programming is a simple but powerful framework for computation based on four basic computational ideas: concurrency (multiple agents are simultaneously active), communication (they interact via the monotonic accumulation of constraints on shared variables), coordination (the presence or absence of information can guard evolution of an agent), and localization (each agent has access to only a finite, though dynamically varying, number of variables, and can create new variables on the fly). Unlike other foundational models of concurrency such as CCS, CSP, Petri nets and the -calculus, such flexibility is already made available within the context of determinate computation. This allows the development of a rich and tractable theory of concurrent processes within the context of which additional computational notion such as indeterminacy, reactivity, instantaneous interrupts and continuous (dense-time) autonomous evolution have been developed. We survey the development of some of these extensions and the relationships between their semantic models.
BRICS Report Series, 2002
The tcc paradigm is a formalism for timed concurrent constraint programming. Several tcc languages differing in their way of expressing infinite behaviour have been proposed in the literature. In this paper we study the expressive power of some of these languages. In particular, we show that:<dl compact="compact"><dt>(1)</dt><dd>recursive procedures with parameters can be encoded into parameterless recursive procedures with dynamic scoping, and vice-versa.</dd><dt>(2)</dt><dd>replication can be encoded into parameterless recursive procedures with static scoping, and vice-versa.</dd><dt>(3)</dt><dd>the languages from (1) are strictly more expressive than the languages from (2).</dd></dl>Furthermore, we show that behavioural equivalence is undecidable for the languages from (1), but decidable for the languages from (2). The undecidability result holds even if the process variables take values...
Constraints, 2013
Concurrent Constraint Programming (CCP) has been used over the last two decades as an elegant and expressive model for concurrent systems. It models systems of agents communicating by posting and querying partial information, represented as constraints over the variables of the system. This covers a vast variety of systems as those arising in biological phenomena, reactive systems, netcentric computing and the advent of social networks and cloud computing. In this paper we survey the main applications, developments and current trends of CCP.
ACM Computing Surveys, 1996
The Journal of Logic Programming, 1997
The standard operational semantics of concurrent constraint logic languages is not confluent in the sense that different schedulings of processes may result in different program behaviors. While implementations are free to choose specific scheduling policies, analyses should be correct for all implementations. Moreover, in the presence of parallelism, it is usually not possible to determine how processes will actually be scheduled. Efficient program analysis is therefore difficult as all process schedulings must be considered. To overcome this problem, we introduce a confluent semantics which closely approximates the standard (nonconfluent) semantics. This semantics provides a basis for efficient and accurate program analysis for these languages. To illustrate the usefulness of this approach, we sketch analyses based on abstract interpretations of the confluent semantics which determine if a program is suspension-and local suspension-free. @ Elsevier Science Inc., 1997 <I 1. INTRODUCTION Concurrent constraint logic programming [24, 26] is a programming paradigm based on logic programming with mechanisms for concurrency. In recent years, there has
The Journal of Logic Programming, 1998
Lecture Notes in Computer Science, 1994
Journal of Logic Programming, 1998
Information and Computation, 2001
Theoretical Computer Science, 1997
Theoretical Computer Science, 1993
Electronic Notes in Theoretical Computer Science, 2003
Proceedings Ninth Annual IEEE Symposium on Logic in Computer Science, 1994
Information and Computation, 2000
Lecture Notes in Computer Science, 1996
Journal of Symbolic Computation, 1996
Journal of Symbolic Computation, 1989
Lecture Notes in Computer Science, 2004
Lecture Notes in Computer Science, 2006
ACM SIGPLAN Notices, 1998
Proceedings of the 12th international ACM SIGPLAN symposium on Principles and practice of declarative programming - PPDP '10, 2010
Foundations of Artificial Intelligence, 2006