Abstract
Saraswat recently introduced the framework of concurrent constraint programming [14]. The essence of the framework is that computations consist of concurrent agents interacting by communicating constraints. Several concurrent constraint programming languages have been defined. They differ in the kinds of constraints that can be used as well as the kinds of operations on constraints which are available. In this paper we introduce a very simple concurrent constraint language we call Lucy, designed to closely mimic the actor model of computation. Agents can communicate only by the posting of constraints upon bags (un-ordered collections possibly with duplicate elements). This very impoverished concurrent constraint language is a syntactic subset of Janus, a concurrent constraint language which closely resembles concurrent logic programming languages such as Guarded Horn Clauses [21], Strand [5], Parlog [2] and Flat Concurrent Prolog [13]. By identifying the subset of Janus which is an actor language, we elucidate the relationship between actors and concurrent logic programming (and its generalization as concurrent constraint programming). Lucy is best not thought of as a unification of logic and constraint programming with actor and object-oriented programming, but as the missing link between these programming language genera.
- 1 G. Agha. Actors: a model of concurrent computation in distributed systems. PhD thesis, University of Michigan, 1985. Google ScholarDigital Library
- 2 K. L. Clark and S. Gregory. Parlog: parallel programming in logic. TOPLAS, 8(1):1-49, January 1986. Google ScholarDigital Library
- 3 W.L. Clinger. Foundations of A clor semantics. PhD thesis, MIT, May. 1981.Google Scholar
- 4 A. Davison. Polka: A Parlog object oriented language. Technical report, Department of Computing, Imperial College, London, 1988.Google Scholar
- 5 Ian Foster and Stephen Taylor. Strand: A practical parallel programming language. In Proceedings of the North American Logic Programming Conference, 1989.Google Scholar
- 6 K. Furu'.(awa, Takeuchi. A., S. Kunifuji, H. Yasukawa, M. Ohki, and K. Ueda. Mandala: A logic bm;ed knowledge programming system. In ICOT, e,titor, Proc of the Internation Conference on Fifth Generation Computer Systems, 1984.Google Scholar
- 7 Carl He~itt. The Ecology of Computation, chapter Offices are open systems. Elsevier Science Publishers/North-Holland, 1988.Google Scholar
- 8 joxan J~Lffar, J-.L. Lassez, and Michael Maher. Logic Programming: Functions, Relations and Equations, chapter Logic Programming Language Scheme. Prentice Hall, 1986. Google ScholarDigital Library
- 9 K. Kahn, E. Tribble, M. Miller, and D. Bobrow. Research Directions in Object-Oriented Programming, chapter Vulcan: Logical Concurrent Objects, pages 75-112. The MIT Press, 1987. Google ScholarDigital Library
- 10 Ken Kahn and Mark S. Miller. The Ecology of Com~utation, chapter Language Design and Open Systems. North Holland, 1988.Google Scholar
- 11 Kenneth Kahn. Objects- a fresh look. In Proceedings of the Third European Conference on Object-C'riented Programming, pages 207-224. Cambridge University Press, July 1989.Google Scholar
- 12 Hector J. Levesque. Foundations of a functional approac~ to knowledge representation. Artificial Intelligence, 23:155-212, 1984. Google ScholarDigital Library
- 13 Colin Mierowsky. Design and implementation of Flat Concurrent Prolog. Technical Report CS84- 21, Weizmann Institute of Science, December 1984.Google Scholar
- 14 Vijay A. Saraswat. Concurrent constraint programming languages. Doctoral Dissertation Award and Logic Programming Series. MIT Press, 1990, forthcoming. Google ScholarDigital Library
- 15 Vijay A. Sara.swat, Kenneth Kahn, and Jacob Levy. Janus--A step towards distributed constraint pl:ogramming. North American Logic Programming Conference, October 1990. Google ScholarDigital Library
- 16 Vijay A. Saraswat, Kenneth M. Kahn, and Jacob Levy. Distributed constraint programming~the dc framework and janus. Technical report, Xerox PARC, .~mgust 1989.Google Scholar
- 17 Vijay A. Saraswat and Martin Rinard. Concurrent con:~traint programming. In Proceedings of Seventeea~h A CM Symposium on Principles of Program ming Languages, San Francisco, January 1990. Google ScholarDigital Library
- 18 Vijay A. Sara.swat, Martin Rinard, and Prakash Panagaden. Fully abstract "may" semantics for concurrent constraint languages. Technical report, Xerox PARC, March 1990.Google Scholar
- 19 Ehud Shapiro and A. Takeuchi. Object oriented programming in concurrent prolog. New Generation Computing, 1:25-48, 1983.Google ScholarDigital Library
- 20 Chris Tomlinson and Vineet Singh. Inheritance and synchronization with enabled-sets. In Proceedings of Conference on Object-Oriented Prograining: Syslems, Languages and Applications, New Orleans, Louisiana, pages 103-112, October 1989. Google ScholarDigital Library
- 21 K Ueda. Guarded Horn Clauses. Technical Report TP~-103, ICOT, June 1985.Google ScholarDigital Library
- 22 M. Young, A. Tevanian, R. Rashid, D. Golub, J. Eppinger, J. Chew, W. Bolosky, D. Black, and D. Baron. The duality of memory and communication in the implementation of a multiprocessor operating system. In Proceedings of the Eleventh Symposium on Opera,tug System Principles, November 1987. Google ScholarDigital Library
Index Terms
- Actors as a special case of concurrent constraint (logic) programming
Recommendations
Actors as a special case of concurrent constraint (logic) programming
OOPSLA/ECOOP '90: Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applicationsSaraswat recently introduced the framework of concurrent constraint programming [14]. The essence of the framework is that computations consist of concurrent agents interacting by communicating constraints. Several concurrent constraint programming ...
Universal concurrent constraint programing: symbolic semantics and applications to security
SAC '08: Proceedings of the 2008 ACM symposium on Applied computingWe introduce the Universal Timed Concurrent Constraint Programming (utcc) process calculus; a generalisation of Timed Concurrent Constraint Programming. The utcc calculus allows for the specification of mobile behaviours in the sense of Milner's π-...
Negation and Constraint Logic Programming
Almost all constraint logic programming systems include negation, yet nowhere has a sound operational model for negation in CLP been discussed. The SLDNF approach of only allowing ground negative subgoals to execute is very restrictive in constraint ...
Comments