Knowledge (XXG)

History of the Actor model

Source ๐Ÿ“

475:). It certainly is the case that implementations of the Actor model typically make use of these hardware capabilities. However, there is no reason that the model could not be implemented directly in hardware without exposing any hardware threads and locks. Also, there is no necessary relationship between the number of Actors, threads, and locks that might be involved in a computation. Implementations of the Actor model are free to make use of threads and locks in any way that is compatible with the laws for Actors. 22: 139:. One issue is what can be observed about Actor systems. The question does not have an obvious answer because it poses both theoretical and observational challenges similar to those that had arisen in constructing the foundations of quantum physics. In concrete terms for Actor systems, typically we cannot observe the details by which the arrival order of messages for an Actor is determined (see 441:
were widely used to model nondeterministic computation. However, they were widely acknowledged to have an important limitation: they modeled control flow but not data flow. Consequently, they were not readily composable, thereby limiting their modularity. Hewitt pointed out another difficulty with
263:
pioneered using message passing for computation, motivated by discrete event simulation applications. These applications had become large and unmodular in previous simulation languages. At each time step, a large central program would have to go through and update the state of each simulation object
110:
introduced situation variables in logic in the Situational Calculus. In McCarthy and Hayes 1969, a situation is defined as "the complete state of the universe at an instant of time." In this respect, the situations of McCarthy are not suitable for use in the Actor model since it has no global states.
370:
The first (token) encountered (in a program) was looked up in the dynamic context, to determine the receiver of the subsequent message. The name lookup began with the class dictionary of the current activation. Failing there, it moved to the sender of that activation and so on up the sender chain.
376:
Thus the message-passing model in Smalltalk-72 was closely tied to a particular machine model and programming-language syntax that did not lend itself to concurrency. Also, although the system was bootstrapped on itself, the language constructs were not formally defined as objects that respond to
114:
From the definition of an Actor, it can be seen that numerous events take place: local decisions, creating Actors, sending messages, receiving messages, and designating how to respond to the next message received. Partial orderings on such events have been axiomatized in the Actor model and their
450:
disappear from the input places of a transition and appear in the output places. The physical basis of using a primitive with this kind of simultaneity seemed questionable to him. Despite these apparent difficulties, Petri nets continue to be a popular approach to modelling concurrency, and are
429:. Meanwhile, the Actor efforts at MIT remained focused on developing the science and engineering of higher level concurrency. (See the paper by Jean-Pierre Briot for ideas that were developed later on how to incorporate some kinds of Actor concurrency into later versions of Smalltalk.) 98:
A fundamental challenge in defining the Actor model is that it did not provide for global states so that a computational step could not be defined as going from one global state to the next global state as had been done in all previous models of computation.
541:
messages, the program script of an Actor would itself have a program script (which in turn would have ...)! Another consideration was that some Actors would not use interpretation in their actual interpretation.
360:
model of computation used for teaching children to program. However, the message passing of Smalltalk-72 was quite complex. Code in the language was viewed by the interpreter as simply a stream of tokens. As
236:
in which the values of parameters were substituted into the body of an invoked lambda expression. The substitution model is unsuitable for concurrency because it does not allow the capability of
248:
made use of a data structure called an environment so that the values of parameters did not have to be substituted into the body of an invoked lambda expression. This allowed for sharing of the
494:
argued against including such queues as an integral part of the Actor model. One consideration was that such queues could themselves be modeled as Actors that received messages to
425:
The Smalltalk system went on to become very influential, innovating in bitmap displays, personal computing, the class browser interface, and many other ways. For details see Kay's
381:
messages (see discussion below). This led some to believe that a new mathematical model of concurrent computation based on message passing should be simpler than Smalltalk-72.
514:
of communications that have been received by an Actor. But this sequence emerged only as the Actor operated. In fact the ordering of this sequence can be indeterminate (see
183: 127:
According to Hewitt (2006), the Actor model is based on physics in contrast with other models of computation that were based on mathematical logic, set theory, algebra,
525:: "Should interpretation be an integral part of the Actor model?" The idea of interpretation is that an Actor would be defined by how its program script processed 371:
When a binding was finally found for the token, its value became the receiver of a new message, and the interpreter activated the code for that object's class.
986: 593:
the concurrency expressed in the Actor model. On the other hand, the Actor model is capable of expressing all of the parallelism in the lambda calculus.
698: 694: 285: 314:-71. Hewitt was intrigued by Smalltalk-71 but was put off by the complexity of communication that included invocations with many fields including 1506: 714: 515: 140: 753: 589:
were identical in implementation." According to Hewitt, the lambda calculus is capable of expressing some kinds of parallelism but, in general,
873:
Hewitt, Carl; Bishop, Peter; Greif, Irene; Smith, Brian; Matson, Todd; Steiger, Richard (January 1974). "Actor induction and meta-evaluation".
43: 388:
of Simula in the message-passing structure of programs. However Smalltalk-72 made primitives such as integers, floating point numbers,
1445: 863: 107: 537:
written in Lisp.) Hewitt argued against making interpretation integral to the Actor model. One consideration was that to process the
921: 719: 702: 65: 666: 642: 606: 405: 249: 396:. The authors of Simula had considered making such primitives into objects but refrained largely for efficiency reasons. 1511: 582: 502:
the communications. Another consideration was that some Actors would not use such queues in their actual implementation.
1516: 307: 148: 1472:
Fuchs, Christopher (2002). "Quantum mechanics as quantum information (and only a little more)". In A. Khrenikov (ed.).
1455:
Hewitt, Carl; Lieberman, Henry (November 1983). "Design Issues in Parallel Architecture for Artificial Intelligence".
397: 1239:
Lieberman, Henry (May 1981). "Thinking About Lots of Things at Once without Getting Confused: Parallelism in Act 1".
831:
McCarthy, John; Hayes, Patrick (1969). "Some Philosophical Problems from the Standpoint of Artificial Intelligence".
408:
programming language (and later versions of Java, starting with Java 1.5) adopted the less elegant solution of using
36: 30: 724: 186:). For example, the lambda expression below implements a tree data structure when supplied with parameters for a 729: 530: 468: 460: 419: 410: 393: 385: 349: 277: 273: 245: 47: 1410:
Hewitt, Carl; de Jong, Peter (August 1983). "Analyzing the Roles of Descriptions and Actions in Open Systems".
1338:
Lieberman, Henry; Hewitt, Carl (June 1983). "A real Time Garbage Collector Based on the Lifetimes of Objects".
686: 281: 400:
at first used the expedient of having both primitive and object versions of integers, floating point numbers,
875:
Proceedings of the 1st annual ACM SIGACT-SIGPLAN symposium on Principles of programming languages - POPL '73
522: 464: 241: 103: 1429:
Symposium on the Foundations of Modern Physics: 50 years of the Einstein-Podolsky-Rosen Gedanken experiment
641:
published a paper on specification and proof techniques for serializers providing an efficient solution to
280:
that would update its own local state based on messages from other objects. In addition they introduced a
1347: 878: 836: 682: 626: 617:
Using the laws of the Actor model, Hewitt and Baker proved that any Actor that behaves like a function is
487: 151:. Instead of observing the insides of arbitration processes of Actor computations, we await the outcomes. 87: 1427:
Jammer, M. (1985). "The EPR Problem in Its Historical Development". In P. Lahti, P. Mittelstaedt (ed.).
801: 563: 546:
an Actor might be implemented in hardware instead. Of course there is nothing wrong with interpretation
507: 472: 132: 264:
that changed depending on the state of whichever simulation objects it interacted with on that step.
1297: 1281: 1163: 1112: 1065: 1049: 977: 933:
Proceedings of the 2nd ACM SIGACT-SIGPLAN symposium on Principles of programming languages - POPL '75
776: 179: 136: 1352: 1482: 1120:
Hewitt, Carl; Atkinson, Russ (January 1979). "Specification and Proof Techniques for Serializers".
883: 841: 674: 646: 637:
Aki Yonezawa published his specification and verification techniques for Actors. Russ Atkinson and
357: 1043:
Specification and Verification Techniques for Parallel Programs Based on Message Passing Semantics
1365: 1227: 1143: 1012: 944: 896: 578: 574: 562:
Nevertheless, progress developing the model was steady. In 1975, Irene Greif published the first
233: 116: 1171:
Hewitt, Carl; Attardi, Beppe; Lieberman, Henry (October 1979). "Delegation in Message Passing".
483:
An important challenge in defining the Actor model was to abstract away implementation details.
1441: 917: 859: 1194: 657:
Finally eight years after the first Actor publication, Will Clinger (building on the work of
384:
Subsequent versions of the Smalltalk language largely followed the path of using the virtual
1460: 1415: 1382: 1357: 1326: 1261: 1244: 1217: 1209: 1133: 1125: 1090: 1082: 1029: 1002: 994: 936: 888: 768: 618: 79: 814: 586: 554:
messages is more modular and extensible than the monolithic interpreter approach of Lisp.
265: 176: 168: 143:). Attempting to do so affects the results and can even push the indeterminacy elsewhere. 348:
In 1972 Kay visited MIT and discussed some of his ideas for Smalltalk-72 building on the
1073:
Hewitt, Carl (June 1977). "Viewing Control Structures as Patterns of Passing Messages".
1024:
Hewitt, Carl; Baker, Henry (August 1977). "Laws for Communicating Parallel Processes".
670: 662: 353: 269: 1395: 1500: 1086: 852: 690: 490:
in which its communications are stored until received by the Actor to be processed?"
172: 1369: 1147: 948: 900: 1377:
Theriault, Daniel (June 1983). "Issues in the Design and Implementation of Act 2".
1231: 1016: 697:). Subsequently, Hewitt augmented the diagrams with arrival times to construct a 1313: 958:
Proceedings of the 4th International Joint Conference on Artificial Intelligence
678: 658: 638: 602: 491: 459:
Prior to the Actor model, concurrency was defined in low-level machine terms of
446:, the atomic step of computation in Petri nets is a transition in which tokens 362: 83: 1213: 622: 521:
Another example of abstracting away implementation detail was the question of
991:
Proceedings of the Symposium on Artificial Intelligence Programming Languages
585:
interpreter in which they concluded "we discovered that the 'actors' and the
1129: 931:
Greif, Irene; Hewitt, Carl (January 1975). "Actor semantics of PLANNER-73".
858:. Translated by A. J. Pomerans. New York: Harper & Row. pp. 63โ€“64. 793: 438: 311: 292: 909: 272:
developed the idea (first described in an IFIP workshop in 1967) of having
1361: 998: 940: 892: 772: 749: 303: 1033: 1007: 529:
messages. (In this way Actors would be defined in a manner analogous to
306:
was influenced by message passing in the pattern-directed invocation of
252:
of updating shared data structures but did not provide for concurrency.
1464: 1419: 1386: 1330: 1265: 1248: 1222: 1138: 1095: 288:. Their innovations considerably improved the modularity of programs. 237: 486:
For example, consider the following question: "Does each Actor have a
510:
instead. Of course, there is a mathematical abstraction which is the
260: 1173:
Proceedings of First International Conference on Distributed Systems
1321:
Theriault, Daniel (April 1982). "A Primer for the Act-1 Language".
533:
which was "defined" by a meta-circular interpreter procedure named
232:
However, the semantics of the lambda calculus were expressed using
1403:
Conference of the American Association for Artificial Intelligence
1412:
Proceedings of the National Conference on Artificial Intelligence
794:"A Universal Modular Actor Formalism for Artificial Intelligence" 581:
then took an interest in Actors and published a paper on their
1310: 1294: 1278: 1185: 1160: 1109: 1062: 1059:
Very Large Address Space Modularly Extensible Computer Systems
1046: 974: 822:
McCarthy, John (1963). "Situations, actions and causal laws".
15: 240:
of changing resources. Inspired by the lambda calculus, the
826:(2). Stanford University Artificial Intelligence Laboratory. 131:
Physics influenced the Actor model in many ways, especially
956:
Hewitt, Carl (September 1975). "How to Use What You Know".
1483:"What is Commitment? Physical, Organizational, and Social" 159:
The Actor model builds on previous models of computation.
910:"Behavioral Semantics of Nonrecursive Control Structure" 1438:
The Shaky Game: Einstein Realism and the Quantum Theory
601:
Two years after Greif published her operational model,
1275:
Reasoning about Change in Knowledgeable Office Systems
86:, first published in 1973, is a mathematical model of 1256:
Lieberman, Henry (June 1981). "A Preview of Act 1".
681:
1979) published the first satisfactory mathematical
1026:
International Federation for Information Processing
792:Carl Hewitt; Peter Bishop; Richard Steiger (1973). 418:, a variant of which had been used earlier in some 1202:IEEE Transactions on Systems, Man, and Cybernetics 851: 987:"The Incremental Garbage Collection of Processes" 653:Mathematical characterization using domain theory 194:. When such a tree is given a parameter message 1431:. Singapore: World Scientific. pp. 129โ€“149. 854:Physics and Beyond: Encounters and Conversations 295:control structure instead of true concurrency. 213:ฮป(leftSubTree,rightSubTree) ฮป(message) 1474:Quantum Theory: Reconstruction of Foundations 1396:"An Object-Oriented Simulator for the Apiary" 1193:Kornfeld, Bill; Hewitt, Carl (January 1981). 971:Semantics of Communicating Parallel Professes 437:Prior to the development of the Actor model, 8: 914:Proceedings of Colloque Sur la Programmation 613:Proof of continuity of computable functions 985:Baker, Henry; Hewitt, Carl (August 1977). 835:(4). Edunburgh University Press: 463โ€“502. 1351: 1221: 1137: 1122:IEEE Transactions on Software Engineering 1094: 1006: 882: 840: 66:Learn how and when to remove this message 1440:. Chicago: University of Chicago Press. 29:This article includes a list of general 1106:Actor Systems for Real-Time Computation 741: 715:Actor model and process calculi history 550:. Also implementing interpreters using 516:Indeterminacy in concurrent computation 479:Abstracting away implementation details 182:(see Hewitt, Bishop, and Steiger 1973; 141:Indeterminacy in concurrent computation 810: 799: 699:technically simpler denotational model 455:Threads, locks, and buffers (channels) 451:still the subject of active research. 115:relationship to physics explored (see 1182:Automatic Verification of Serializers 7: 202:and likewise when given the message 1195:"The Scientific Community Metaphor" 1157:A Computational Theory of Animation 673:, Lehmann, and de Roever 1979, and 442:Petri nets: simultaneous action. 94:Event orderings versus global state 1075:Journal of Artificial Intelligence 701:that is easier to understand. See 35:it lacks sufficient corresponding 14: 720:History of denotational semantics 703:History of denotational semantics 693:in his dissertation in 1981 (see 506:an Actor might have a network of 1476:. Vรคxjo: Vรคxjo University Press. 1394:Lieberman, Henry (August 1983). 754:"The Early History of Smalltalk" 20: 1481:Hewitt, Carl (April 27, 2006). 609:published the Laws for Actors. 155:Models prior to the Actor model 1507:Actor model (computer science) 1307:Foundations of Actor Semantics 1291:Parallelism in Problem Solving 427:The Early History of Smalltalk 175:can be viewed as the earliest 1: 244:for the programming language 1087:10.1016/0004-3702(77)90033-9 149:metastability in electronics 908:Hewitt, Carl (April 1974). 850:Heisenberg, Werner (1971). 566:model in her dissertation. 1533: 725:Actor model middle history 665:1976, Michael Smyth 1978, 1340:Communications of the ACM 1214:10.1109/TSMC.1981.4308575 730:Actor model later history 633:Specifications and proofs 687:unbounded nondeterminism 621:in the sense defined by 225:(message == "getRight") 184:Abelson and Sussman 1985 102:In 1963 in the field of 1379:MIT AI Technical Report 1289:Kornfeld, Bill (1981). 1180:Atkinson, Russ (1980). 1130:10.1109/TSE.1979.234149 217:(message == "getLeft") 123:Relationship to physics 104:Artificial Intelligence 50:more precise citations. 1305:Clinger, Will (1981). 1273:Barber, Gerry (1981). 1057:Bishop, Peter (1977). 1041:Yonezawa, Aki (1977). 809:Cite journal requires 627:denotational semantics 88:concurrent computation 1362:10.1145/358141.358147 1104:Baker, Henry (1978). 999:10.1145/800228.806932 969:Greif, Irene (1975). 941:10.1145/512976.512984 893:10.1145/512927.512942 824:Technical Report Memo 773:10.1145/155360.155364 645:shared resources for 291:However, Simula used 234:variable substitution 1512:History of computing 877:. pp. 153โ€“168. 833:Machine Intelligence 685:model incorporating 365:later described it: 180:programming language 137:relativistic physics 1517:History of software 1405:. Washington, D. C. 761:ACM SIGPLAN Notices 647:concurrency control 1155:Kahn, Ken (1979). 935:. pp. 67โ€“77. 587:lambda expressions 117:Actor model theory 1436:Fine, A. (1986). 1175:. Huntsville, AL. 796:. IJCAI: 235โ€“245. 558:Operational model 422:implementations. 340:operator selector 284:for objects with 221:leftSubTree 76: 75: 68: 1524: 1493: 1487: 1477: 1468: 1451: 1432: 1423: 1406: 1400: 1390: 1373: 1355: 1334: 1317: 1301: 1285: 1269: 1252: 1235: 1225: 1199: 1189: 1176: 1167: 1151: 1141: 1116: 1100: 1098: 1069: 1053: 1037: 1020: 1010: 981: 965: 952: 927: 904: 886: 869: 857: 846: 844: 827: 818: 812: 807: 805: 797: 784: 783: 781: 775:. Archived from 758: 746: 553: 540: 536: 528: 501: 497: 209: 205: 201: 197: 193: 189: 80:computer science 71: 64: 60: 57: 51: 46:this article by 37:inline citations 24: 23: 16: 1532: 1531: 1527: 1526: 1525: 1523: 1522: 1521: 1497: 1496: 1485: 1480: 1471: 1454: 1448: 1435: 1426: 1409: 1398: 1393: 1376: 1353:10.1.1.123.5055 1337: 1320: 1304: 1288: 1272: 1255: 1238: 1197: 1192: 1179: 1170: 1154: 1119: 1103: 1072: 1056: 1040: 1023: 984: 968: 955: 930: 924: 907: 872: 866: 849: 830: 821: 808: 798: 791: 788: 787: 779: 756: 748: 747: 743: 738: 711: 695:Clinger's model 669:1978, Francez, 655: 635: 615: 599: 597:Laws for Actors 572: 560: 551: 538: 534: 526: 499: 495: 481: 457: 435: 358:"little person" 301: 282:class structure 266:Kristen Nygaard 258: 230: 207: 203: 199: 195: 191: 187: 177:message passing 169:lambda calculus 165: 163:Lambda calculus 157: 133:quantum physics 125: 96: 72: 61: 55: 52: 42:Please help to 41: 25: 21: 12: 11: 5: 1530: 1528: 1520: 1519: 1514: 1509: 1499: 1498: 1495: 1494: 1478: 1469: 1452: 1447:978-0226249476 1446: 1433: 1424: 1407: 1391: 1374: 1335: 1318: 1302: 1286: 1270: 1253: 1236: 1190: 1177: 1168: 1152: 1117: 1101: 1081:(3): 323โ€“364. 1070: 1054: 1038: 1021: 982: 966: 953: 928: 922: 905: 884:10.1.1.104.295 870: 865:978-0061316227 864: 847: 842:10.1.1.85.5082 828: 819: 811:|journal= 786: 785: 782:on 2012-02-05. 752:(March 1993). 740: 739: 737: 734: 733: 732: 727: 722: 717: 710: 707: 663:Gordon Plotkin 654: 651: 634: 631: 614: 611: 598: 595: 575:Gerald Sussman 571: 568: 559: 556: 523:interpretation 480: 477: 456: 453: 448:simultaneously 434: 431: 374: 373: 354:Seymour Papert 310:in developing 300: 297: 270:Ole-Johan Dahl 257: 254: 212: 164: 161: 156: 153: 124: 121: 95: 92: 74: 73: 28: 26: 19: 13: 10: 9: 6: 4: 3: 2: 1529: 1518: 1515: 1513: 1510: 1508: 1505: 1504: 1502: 1491: 1484: 1479: 1475: 1470: 1466: 1462: 1458: 1453: 1449: 1443: 1439: 1434: 1430: 1425: 1421: 1417: 1413: 1408: 1404: 1397: 1392: 1388: 1384: 1380: 1375: 1371: 1367: 1363: 1359: 1354: 1349: 1345: 1341: 1336: 1332: 1328: 1324: 1319: 1315: 1312: 1308: 1303: 1299: 1296: 1292: 1287: 1283: 1280: 1276: 1271: 1267: 1263: 1259: 1254: 1250: 1246: 1242: 1237: 1233: 1229: 1224: 1219: 1215: 1211: 1207: 1203: 1196: 1191: 1187: 1183: 1178: 1174: 1169: 1165: 1162: 1158: 1153: 1149: 1145: 1140: 1135: 1131: 1127: 1123: 1118: 1114: 1111: 1107: 1102: 1097: 1092: 1088: 1084: 1080: 1076: 1071: 1067: 1064: 1060: 1055: 1051: 1048: 1044: 1039: 1035: 1031: 1027: 1022: 1018: 1014: 1009: 1004: 1000: 996: 992: 988: 983: 979: 976: 972: 967: 963: 959: 954: 950: 946: 942: 938: 934: 929: 925: 923:9783540068594 919: 915: 911: 906: 902: 898: 894: 890: 885: 880: 876: 871: 867: 861: 856: 855: 848: 843: 838: 834: 829: 825: 820: 816: 803: 795: 790: 789: 778: 774: 770: 766: 762: 755: 751: 745: 742: 735: 731: 728: 726: 723: 721: 718: 716: 713: 712: 708: 706: 704: 700: 696: 692: 691:domain theory 688: 684: 680: 676: 672: 668: 664: 660: 652: 650: 648: 644: 643:encapsulating 640: 632: 630: 628: 624: 620: 612: 610: 608: 604: 596: 594: 592: 588: 584: 580: 576: 569: 567: 565: 557: 555: 549: 545: 532: 524: 519: 517: 513: 509: 505: 493: 489: 484: 478: 476: 474: 470: 466: 462: 454: 452: 449: 445: 440: 432: 430: 428: 423: 421: 417: 413: 412: 407: 403: 399: 395: 391: 387: 382: 380: 372: 368: 367: 366: 364: 359: 355: 351: 346: 345: 341: 337: 333: 329: 325: 321: 317: 313: 309: 305: 298: 296: 294: 289: 287: 283: 279: 275: 271: 267: 262: 255: 253: 251: 247: 243: 239: 235: 229:rightSubTree 228: 224: 220: 216: 211: 198:, it returns 185: 181: 178: 174: 173:Alonzo Church 170: 162: 160: 154: 152: 150: 146: 142: 138: 134: 130: 122: 120: 118: 112: 109: 108:John McCarthy 105: 100: 93: 91: 89: 85: 81: 70: 67: 59: 56:February 2013 49: 45: 39: 38: 32: 27: 18: 17: 1489: 1473: 1456: 1437: 1428: 1411: 1402: 1378: 1343: 1339: 1322: 1306: 1290: 1274: 1257: 1240: 1205: 1201: 1181: 1172: 1156: 1121: 1105: 1078: 1074: 1058: 1042: 1034:1721.1/41962 1025: 1008:1721.1/41969 990: 970: 961: 957: 932: 913: 874: 853: 832: 823: 802:cite journal 777:the original 767:(3): 69โ€“75. 764: 760: 744: 683:denotational 656: 636: 616: 600: 590: 573: 561: 547: 543: 520: 511: 503: 485: 482: 458: 447: 443: 436: 426: 424: 415: 409: 401: 389: 383: 378: 375: 369: 347: 343: 339: 335: 331: 327: 323: 319: 315: 302: 290: 259: 231: 226: 222: 218: 214: 208:rightSubTree 192:rightSubTree 166: 158: 144: 128: 126: 113: 101: 97: 77: 62: 53: 34: 1465:1721.1/5653 1457:MIT AI Memo 1420:1721.1/5649 1387:1721.1/6940 1331:1721.1/5675 1323:MIT AI Memo 1314:Mathematics 1266:1721.1/6350 1258:MIT AI Memo 1249:1721.1/6351 1241:MIT AI Memo 1223:1721.1/5693 1139:1721.1/5756 1096:1721.1/6272 916:: 385โ€“407. 667:Henry Baker 659:Irene Greif 639:Carl Hewitt 607:Henry Baker 603:Carl Hewitt 564:operational 492:Carl Hewitt 363:Dan Ingalls 328:reply-style 286:inheritance 242:interpreter 206:it returns 200:leftSubTree 188:leftSubTree 84:Actor model 48:introducing 1501:Categories 1490:COIN@AAMAS 1346:(6): 419. 964:: 189โ€“198. 736:References 623:Dana Scott 619:continuous 579:Guy Steele 439:Petri nets 433:Petri nets 204:"getRight" 31:references 1348:CiteSeerX 1309:(Ph.D.). 1293:(Ph.D.). 1277:(Ph.D.). 1208:: 24โ€“33. 1184:(Ph.D.). 1159:(Ph.D.). 1124:: 10โ€“23. 1108:(Ph.D.). 1061:(Ph.D.). 1045:(Ph.D.). 993:: 55โ€“59. 973:(Ph.D.). 879:CiteSeerX 837:CiteSeerX 750:Kay, Alan 312:Smalltalk 299:Smalltalk 293:coroutine 261:Simula 67 196:"getLeft" 1370:14161480 1148:15272353 949:18178340 901:33611569 709:See also 512:sequence 508:arbiters 473:channels 416:unboxing 356:and the 352:work of 324:receiver 304:Alan Kay 276:on each 1459:(750). 1381:(728). 1325:(672). 1260:(625). 1243:(626). 1232:1322857 1017:1557419 500:dequeue 496:enqueue 469:buffers 461:threads 394:objects 386:methods 308:Planner 274:methods 250:effects 238:sharing 223:else if 44:improve 1444:  1368:  1350:  1230:  1146:  1015:  947:  920:  899:  881:  862:  839:  689:using 679:Milnor 661:1975, 583:Scheme 570:Scheme 548:per se 411:boxing 332:status 320:sender 316:global 278:object 256:Simula 147:, see 82:, the 33:, but 1486:(PDF) 1399:(PDF) 1366:S2CID 1228:S2CID 1198:(PDF) 1144:S2CID 1013:S2CID 945:S2CID 897:S2CID 780:(PDF) 757:(PDF) 675:Milne 671:Hoare 625:(see 544:E.g., 504:E.g., 488:queue 465:locks 392:into 336:reply 1442:ISBN 1298:EECS 1282:EECS 1164:EECS 1113:EECS 1066:EECS 1050:EECS 978:EECS 918:ISBN 860:ISBN 815:help 677:and 605:and 577:and 552:eval 539:eval 535:eval 531:Lisp 527:eval 498:and 467:and 444:I.e. 420:Lisp 414:and 404:The 402:etc. 398:Java 390:etc. 379:Eval 350:Logo 344:etc. 268:and 246:Lisp 227:then 219:then 190:and 167:The 145:e.g. 135:and 129:etc. 1461:hdl 1416:hdl 1383:hdl 1358:doi 1327:hdl 1311:MIT 1295:MIT 1279:MIT 1262:hdl 1245:hdl 1218:hdl 1210:doi 1186:MIT 1161:MIT 1134:hdl 1126:doi 1110:MIT 1091:hdl 1083:doi 1063:MIT 1047:MIT 1030:hdl 1003:hdl 995:doi 975:MIT 937:doi 889:doi 769:doi 629:). 591:not 518:). 171:of 119:). 78:In 1503:: 1488:. 1414:. 1401:. 1364:. 1356:. 1344:26 1342:. 1226:. 1216:. 1206:11 1204:. 1200:. 1142:. 1132:. 1089:. 1077:. 1028:. 1011:. 1001:. 989:. 960:. 943:. 912:. 895:. 887:. 806:: 804:}} 800:{{ 765:28 763:. 759:. 705:. 649:. 463:, 406:C# 342:, 338:, 334:, 330:, 326:, 322:, 318:, 215:if 210:. 106:, 90:. 1492:. 1467:. 1463:: 1450:. 1422:. 1418:: 1389:. 1385:: 1372:. 1360:: 1333:. 1329:: 1316:. 1300:. 1284:. 1268:. 1264:: 1251:. 1247:: 1234:. 1220:: 1212:: 1188:. 1166:. 1150:. 1136:: 1128:: 1115:. 1099:. 1093:: 1085:: 1079:8 1068:. 1052:. 1036:. 1032:: 1019:. 1005:: 997:: 980:. 962:1 951:. 939:: 926:. 903:. 891:: 868:. 845:. 817:) 813:( 771:: 471:( 69:) 63:( 58:) 54:( 40:.

Index

references
inline citations
improve
introducing
Learn how and when to remove this message
computer science
Actor model
concurrent computation
Artificial Intelligence
John McCarthy
Actor model theory
quantum physics
relativistic physics
Indeterminacy in concurrent computation
metastability in electronics
lambda calculus
Alonzo Church
message passing
programming language
Abelson and Sussman 1985
variable substitution
sharing
interpreter
Lisp
effects
Simula 67
Kristen Nygaard
Ole-Johan Dahl
methods
object

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

โ†‘