Knowledge (XXG)

Janus (concurrent constraint programming language)

Source 📝

116:. These represent, respectively, the right to ask the value of the variable (or some characteristic of the value) and the right to tell the value (or to tell some constraint on what the value can be). The asker and teller aspects can be passed around as arguments independently of each other. Neither right implies the other right. The syntax of the language prevents copying a teller or exercising it more than once. Logical contradiction is statically prevented, according to Kahn and Saraswat. 97:, 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 90:. 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. 175:
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.
93:
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
108:, the two-faced Roman god, because every logical variable in Janus has as its two "faces", two aspects that can be passed as arguments. These are called the 79:
partially described by K. Kahn and Vijay A. Saraswat in the paper "Actors as a special case of concurrent constraint (logic) programming" in 1990. It is a
198: 188: 80: 27: 98: 193: 59: 76: 172:
VA Saraswat, M Rinard, P Panangaden (1991). "The semantic foundations of concurrent constraint programming." POPL.
169:
VA Saraswat, KM Kahn, J Levy (1990). "Janus: A step towards distributed constraint programming." NACLP.
43: 22: 105: 39: 146: 34: 182: 134: 94: 150: 135:"Actors as a special case of concurrent constraint (logic) programming" 57: 49: 33: 21: 104:Janus, the programming language, is named after 133:Kahn, K.; Saraswat, Vijay A. (1 October 1990). 8: 86:Janus models concurrency through the use of 16: 15: 125: 7: 14: 199:Constraint programming languages 189:Concurrent programming languages 101:, which is influenced by Janus. 83:language without backtracking. 1: 77:computer programming language 194:Logic programming languages 28:concurrent constraint logic 215: 65: 81:concurrent constraint 151:10.1145/97946.97955 139:ACM SIGPLAN Notices 50:First appeared 18: 70: 69: 44:Vijay A. Saraswat 206: 162: 161: 159: 157: 130: 66:(none available) 35:Designed by 19: 214: 213: 209: 208: 207: 205: 204: 203: 179: 178: 166: 165: 155: 153: 132: 131: 127: 122: 60:implementations 12: 11: 5: 212: 210: 202: 201: 196: 191: 181: 180: 177: 176: 173: 170: 164: 163: 124: 123: 121: 118: 68: 67: 63: 62: 55: 54: 51: 47: 46: 37: 31: 30: 25: 13: 10: 9: 6: 4: 3: 2: 211: 200: 197: 195: 192: 190: 187: 186: 184: 174: 171: 168: 167: 152: 148: 145:(10): 57–66. 144: 140: 136: 129: 126: 119: 117: 115: 111: 107: 102: 100: 96: 91: 89: 84: 82: 78: 74: 64: 61: 56: 52: 48: 45: 41: 38: 36: 32: 29: 26: 24: 20: 154:. Retrieved 142: 138: 128: 113: 109: 103: 92: 88:bag channels 87: 85: 72: 71: 95:actor model 183:Categories 156:29 October 120:References 112:and the 99:ToonTalk 40:Ken Kahn 23:Paradigm 114:teller 58:Major 110:asker 106:Janus 75:is a 73:Janus 17:Janus 158:2019 53:1990 42:and 147:doi 185:: 143:25 141:. 137:. 160:. 149::

Index

Paradigm
concurrent constraint logic
Designed by
Ken Kahn
Vijay A. Saraswat
implementations
computer programming language
concurrent constraint
actor model
ToonTalk
Janus
"Actors as a special case of concurrent constraint (logic) programming"
doi
10.1145/97946.97955
Categories
Concurrent programming languages
Logic programming languages
Constraint programming languages

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.