Janus (concurrent constraint programming language)
Paradigm | concurrent constraint logic |
---|---|
Designed by | Ken Kahn and Vijay A. Saraswat |
First appeared | 1990 |
Major implementations | |
(none available) |
Janus is a
Janus models concurrency through the use of bag channels. Code that needs to send a message to a process does so by constraining a bag to be the union of another bag and the singleton bag of the message. The other bag is then available to be constrained for sending subsequent messages.
The process receives the message by matching the bag to a pattern that says it is the union of some singleton and some other bag. The logic of the bag channels produces a property shared by the actor model, namely that the order of arrival of the messages is not guaranteed. However, unlike actors in the actor model, processes in Janus can pass around their "mailboxes" so to speak, in the form of bags, and can hold more than one. This ability to pass mailboxes around and hold more than one is inherited in computer programming language
Janus, the programming language, is named after
References
- . Retrieved 29 October 2019.
- VA Saraswat, KM Kahn, J Levy (1990). "Janus: A step towards distributed constraint programming." NACLP.
- VA Saraswat, M Rinard, P Panangaden (1991). "The semantic foundations of concurrent constraint programming." POPL.
- David Gudeman, Koenraad De Bosschere, Saumya K. Debray (1992). "jc: An Efficient and Portable Sequential Implementation of Janus". Proc. Joint International Conference and Symposium on Logic Programming.