Concurrent Constraint Programming

Concurrent Constraint Programming

1990 | Vijay A. Saraswat, Martin Rinard
This paper introduces a new class of concurrent programming languages based on computing with partial information and the related concepts of consistency and entailment. The framework involves agents that communicate by placing, checking, and instantiating constraints on shared variables. This approach is particularly useful in programming languages for representing partial information, for communication and control in concurrency, and for inference mechanisms in AI. The paper presents the cc(↓,→) language, which provides basic operations like blocking Ask and atomic Tell, and an algebra of behaviors closed under prefixing, indeterministic choice, interleaving, and hiding. It is similar to Milner's CCS but uses a different communication model, offering a general alternative to value-passing in CCS. The paper also discusses the rules of behavior for cc agents, visible actions, and reactive congruence, and presents an equational characterization of reactive congruence for Finitary cc(↓,→). The paper outlines the basic framework of cc languages, their operations, and how they can be used to build complex programs. It also compares cc languages with previous work in concurrent logic programming and discusses constraint systems, their role in AI, and the use of constraint-based communication in concurrent programming. The paper concludes with an abstract semantics for cc(↓,→) languages, focusing on visible actions and reactive semantics, and introduces c-trees and bisimulation equivalences to define congruences for cc(↓,→) agents.This paper introduces a new class of concurrent programming languages based on computing with partial information and the related concepts of consistency and entailment. The framework involves agents that communicate by placing, checking, and instantiating constraints on shared variables. This approach is particularly useful in programming languages for representing partial information, for communication and control in concurrency, and for inference mechanisms in AI. The paper presents the cc(↓,→) language, which provides basic operations like blocking Ask and atomic Tell, and an algebra of behaviors closed under prefixing, indeterministic choice, interleaving, and hiding. It is similar to Milner's CCS but uses a different communication model, offering a general alternative to value-passing in CCS. The paper also discusses the rules of behavior for cc agents, visible actions, and reactive congruence, and presents an equational characterization of reactive congruence for Finitary cc(↓,→). The paper outlines the basic framework of cc languages, their operations, and how they can be used to build complex programs. It also compares cc languages with previous work in concurrent logic programming and discusses constraint systems, their role in AI, and the use of constraint-based communication in concurrent programming. The paper concludes with an abstract semantics for cc(↓,→) languages, focusing on visible actions and reactive semantics, and introduces c-trees and bisimulation equivalences to define congruences for cc(↓,→) agents.
Reach us at info@study.space
[slides] Concurrent constraint programming | StudySpace