2491:
143:) whose purpose is to provide means of communication. In many implementations, channels have rich internal structure to improve efficiency, but this is abstracted away in most theoretic models. In addition to names, one needs a means to form new processes from old ones. The basic operators, always present in some form or other, allow:
1783:. One way of doing this is to consider encodings between two formalisms and see what properties encodings can potentially preserve. The more properties can be preserved, the more expressive the target of the encoding is said to be. For process calculi, the celebrated results are that the synchronous
1766:
Behavioural theory: what does it mean for two processes to be the same? How can we decide whether two processes are different or not? Can we find representatives for equivalence classes of processes? Generally, processes are considered to be the same if no context, that is other processes running in
758:
The key operational reduction rule, containing the computational essence of process calculi, can be given solely in terms of parallel composition, sequentialization, input, and output. The details of this reduction vary among the calculi, but the essence remains roughly the same. The reduction rule
1751:
in the sense that they are rather general and not much can be said about arbitrary processes; and (2) computational applications rarely exhaust the whole of a calculus. Rather they use only processes that are very constrained in form. Constraining the shape of processes is mostly studied by way of
1286:
Processes do not limit the number of connections that can be made at a given interaction point. But interaction points allow interference (i.e. interaction). For the synthesis of compact, minimal and compositional systems, the ability to restrict interference is crucial.
1848:
imposed on a history monoid in a consistent fashion. That is, a history monoid can only record a sequence of events, with synchronization, but does not specify the allowed state transitions. Thus, a process calculus is to a history monoid what a formal language is to a
1778:
Expressivity of calculi. Programming experience shows that certain problems are easier to solve in some languages than in others. This phenomenon calls for a more precise characterisation of the expressivity of calculi modeling computation than that afforded by the
341:
Channels may be synchronous or asynchronous. In the case of a synchronous channel, the agent sending a message waits until another agent has received the message. Asynchronous channels do not require any such synchronization. In some process calculi (notably the
1683:
computation. The subsequent consolidation of computer science required a more subtle formulation of the notion of computation, in particular explicit representations of concurrency and communication. Models of concurrency such as the process calculi,
859:
1767:
parallel, can detect a difference. Unfortunately, making this intuition precise is subtle and mostly yields unwieldy characterisations of equality (which in most cases must also be undecidable, as a consequence of the
1711:(CSP) first appeared in 1978, and was subsequently developed into a full-fledged process calculus during the early 1980s. There was much cross-fertilization of ideas between CCS and CSP as they developed. In 1982
618:
can be used for such purposes. It is well known from other models of computation. In process calculi, the sequentialisation operator is usually integrated with input or output, or both. For example, the process
1635:, or some other appropriate symbol) which has no interaction points. It is utterly inactive and its sole purpose is to act as the inductive anchor on top of which more interesting processes can be generated.
1727:
to describe their work. CCS, CSP, and ACP constitute the three major branches of the process calculi family: the majority of the other process calculi can trace their roots to one of these three calculi.
1880:). One of the fundamental motivations for including channels in the process calculi was to enable certain algebraic techniques, thereby making it easier to reason about processes algebraically.
46:. Process calculi provide a tool for the high-level description of interactions, communications, and synchronizations between a collection of independent agents or processes. They also provide
1046:
901:
362:
flow of information. That is, input and output can be distinguished as dual interaction primitives. Process calculi that make such distinctions typically define an input operator (
346:) channels themselves can be sent in messages through (other) channels, allowing the topology of process interconnections to change. Some process calculi also allow channels to be
1675:
possibly being the best-known examples today. The surprising fact that they are essentially equivalent, in the sense that they are all encodable into each other, supports the
480:
424:
1613:
1410:
1291:
operations allow control of the connections made between interaction points when composing agents in parallel. Hiding can be denoted in a variety of ways. For example, in the
1560:
2253:
1477:
1341:
1317:
1276:
1248:
1224:
1200:
1176:
1070:
1008:
949:
925:
748:
724:
700:
676:
611:
587:
448:
336:
312:
288:
264:
214:
190:
1518:
1105:
984:
652:
1374:
240:
1633:
1420:
The operations presented so far describe only finite interaction and are consequently insufficient for full computability, which includes non-terminating behaviour.
533:
392:
2312:
1453:
555:
plays that role. The choice of the kind of data that can be exchanged in an interaction is one of the key features that distinguishes different process calculi.
1580:
1152:
765:
553:
500:
1798:
Using process calculus to model biological systems (stochastic π-calculus, BioAmbients, Beta
Binders, BioPEPA, Brane calculus). It is thought by some that the
102:
behaviour, timing information, and specializations for studying molecular interactions), there are several features that all process calculi have in common:
2400:
67:
453:
Should information be exchanged, it will flow from the outputting to the inputting process. The output primitive will specify the data to be sent. In
1740:. This is to be expected as process calculi are an active field of study. Currently research on process calculi focuses on the following problems.
50:
laws that allow process descriptions to be manipulated and analyzed, and permit formal reasoning about equivalences between processes (e.g., using
2362:
2179:
242:, is the key primitive distinguishing the process calculi from sequential models of computation. Parallel composition allows computation in
2395:
2385:
2305:
1889:
1720:
1708:
1377:
63:
55:
1432:
are operations that allow finite descriptions of infinite behaviour. Recursion is well known from the sequential world. Replication
2390:
2227:
2209:
2172:
2150:
2102:
2073:
1970:
1736:
Various process calculi have been studied and not all of them fit the paradigm sketched here. The most prominent example may be the
1700:
1648:
1644:
59:
2238:
290:
to proceed simultaneously and independently. But it also allows interaction, that is synchronisation and flow of information from
2090:
338:(or vice versa) on a channel shared by both. Crucially, an agent or process can be connected to more than one channel at a time.
2054:
Sangiorgi, Davide (1993). "From π-calculus to higher-order π-calculus — and back". In Gaudel, M. -C.; Jouannaud, J. -P. (eds.).
1877:
1278:
is allowed to range over as the continuation of the output operation substantially influences the properties of the calculus.
2335:
2461:
1759:
Logics for processes that allow one to reason about (essentially) arbitrary properties of processes, following the ideas of
2495:
2298:
1844:
that is generically able to represent the histories of individual communicating processes. A process calculus is then a
2471:
2456:
2451:
1854:
113:
Describing processes and systems using a small collection of primitives, and operators for combining those primitives.
1864:
The use of channels for communication is one of the features distinguishing the process calculi from other models of
563:
Sometimes interactions must be temporally ordered. For example, it might be desirable to specify algorithms such as:
1747:
Finding well-behaved subcalculi of a given process calculus. This is valuable because (1) most calculi are fairly
2446:
2345:
2012:
Baeten, J. C. M.; Middelburg, C. A. (2000). "Process algebra with timing: Real time and discrete time": 627–684.
1909:
1780:
2516:
2183:
1016:
871:
1659:
In the first half of the 20th century, various formalisms were proposed to capture the informal concept of a
2476:
1664:
1428:
116:
Defining algebraic laws for the process operators, which allow process expressions to be manipulated using
2013:
1679:. Another shared feature is more rarely commented on: they all are most readily understood as models of
2350:
2249:
2027:
456:
400:
139:
1585:
1383:
2321:
1865:
1676:
1535:
117:
83:
1787:
is more expressive than its asynchronous variant, has the same expressive power as the higher-order
2340:
1458:
1322:
1298:
1257:
1229:
1205:
1181:
1157:
1051:
989:
930:
906:
729:
705:
681:
657:
592:
568:
429:
317:
293:
269:
245:
195:
171:
2058:. Lecture Notes in Computer Science. Vol. 668. Springer Berlin Heidelberg. pp. 151–166.
2018:
2271:
1958:
1802:
offered by process-theoretic tools can help biologists to organise their knowledge more formally.
1485:
1075:
954:
622:
98:
While the variety of existing process calculi is very large (including variants that incorporate
1346:
1937:
2223:
2205:
2168:
2146:
2098:
2069:
1992:
Algebraic
Process Calculi: The First Twenty Five Years and Beyond (BRICS Notes Series NS-05-3)
1966:
219:
43:
1618:
1455:
can be understood as abbreviating the parallel composition of a countably infinite number of
2410:
2134:
2059:
1899:
1799:
1792:
1737:
75:
31:
2367:
2357:
2283:
2040:
1845:
1768:
1716:
1672:
854:{\displaystyle x\langle y\rangle \cdot P\;\vert \;x(v)\cdot Q\longrightarrow P\;\vert \;Q}
509:
503:
368:
107:
2234:
1435:
2466:
2156:
1904:
1837:
1668:
1565:
1110:
538:
485:
2108:
1994:. Bertinoro, Forlì, Italy: BRICS, Department of Computer Science, University of Aarhus
1853:(a formal language is a subset of the set of all possible finite-length strings of an
17:
2510:
2425:
2405:
2246:
Formale
Grundlagen der Informatik II: Modellierung und Analyse von Informatiksystemen
2164:
2142:
1914:
1788:
1784:
1292:
343:
87:
2415:
2215:
2197:
1772:
1712:
1704:
1696:
51:
2441:
1873:
1858:
1850:
1841:
1760:
1753:
1689:
71:
1744:
Developing new process calculi for better modeling of computational phenomena.
99:
2064:
1811:
The ideas behind process algebra have given rise to several tools including:
1869:
1820:
1685:
1422:
106:
Representing interactions between independent processes as communication (
1894:
506:
will act as place-holders to be substituted by data, when it arrives. In
2290:
47:
150:
specification of which channels to use for sending and receiving data
2239:"Chapter 5: Prozessalgebra - Parallele und kommunizierende Prozesse"
1775:
are a technical tool that aids reasoning about process equivalences.
42:) are a diverse family of related approaches for formally modelling
450:) that is used to synchronise with a dual interaction primitive.
2420:
1961:(1996-12-21). "Foundational Calculi for Programming Languages".
1815:
79:
2294:
1987:
502:. Similarly, if an input expects to receive data, one or more
1600:
1597:
1594:
1591:
1547:
1544:
1541:
1464:
1328:
1304:
1263:
1235:
1211:
1187:
1163:
1057:
995:
936:
912:
735:
711:
687:
663:
598:
574:
435:
323:
299:
275:
251:
201:
177:
2188:
1947:. Vakgroep Informatica, Technische Universiteit Eindhoven.
2237:; Moldt, Daniel; Köhler-Bußmeier, Michael, eds. (2011).
2056:
TAPSOFT'93: Theory and
Practice of Software Development
1825:
1621:
1588:
1568:
1538:
1488:
1461:
1438:
1386:
1349:
1325:
1301:
1260:
1232:
1208:
1184:
1160:
1113:
1078:
1054:
1019:
992:
957:
933:
909:
874:
768:
732:
708:
684:
678:. Only when this input has occurred will the process
660:
625:
595:
571:
541:
512:
488:
459:
432:
403:
371:
320:
296:
272:
248:
222:
198:
174:
27:
Family of approaches for modelling concurrent systems
2434:
2376:
2328:
2182:and the new edition is available for download as a
110:), rather than as modification of shared variables.
1695:Research on process calculi began in earnest with
1627:
1607:
1574:
1554:
1512:
1471:
1447:
1404:
1368:
1335:
1311:
1270:
1242:
1218:
1194:
1170:
1146:
1099:
1064:
1040:
1002:
978:
943:
919:
895:
853:
742:
718:
694:
670:
646:
605:
581:
547:
527:
494:
474:
442:
418:
386:
330:
306:
282:
258:
234:
208:
184:
70:. More recent additions to the family include the
2220:Communicating and Mobile Systems: the Pi-Calculus
1134:
1127:
841:
834:
426:), both of which name an interaction point (here
2178:This book has been updated by Jim Davies at the
54:). Leading examples of process calculi include
2097:. Singapore: World Scientific. pp. 3–41.
864:The interpretation to this reduction rule is:
2306:
1963:The Computer Science and Engineering Handbook
702:be activated, with the received data through
8:
1986:Baeten, J.C.M.; Bravetti, M. (August 2005).
1931:
1929:
1399:
1393:
1029:
1023:
884:
878:
817:
788:
778:
772:
469:
463:
413:
407:
226:
1832:Relationship to other models of concurrency
1719:began work on what came to be known as the
1703:(CCS) during the period from 1973 to 1980.
1692:in 1973 emerged from this line of inquiry.
2313:
2299:
2291:
1356:
820:
816:
791:
787:
2063:
2017:
1620:
1590:
1589:
1587:
1567:
1540:
1539:
1537:
1528:Process calculi generally also include a
1487:
1463:
1462:
1460:
1437:
1385:
1348:
1327:
1326:
1324:
1303:
1302:
1300:
1262:
1261:
1259:
1234:
1233:
1231:
1210:
1209:
1207:
1186:
1185:
1183:
1162:
1161:
1159:
1135:
1128:
1121:
1112:
1077:
1056:
1055:
1053:
1041:{\displaystyle x\langle y\rangle \cdot P}
1018:
994:
993:
991:
956:
935:
934:
932:
911:
910:
908:
896:{\displaystyle x\langle y\rangle \cdot P}
873:
842:
835:
828:
767:
734:
733:
731:
710:
709:
707:
686:
685:
683:
662:
661:
659:
624:
597:
596:
594:
573:
572:
570:
540:
511:
487:
458:
434:
433:
431:
402:
370:
322:
321:
319:
298:
297:
295:
274:
273:
271:
250:
249:
247:
221:
200:
199:
197:
176:
175:
173:
2093:. In Diekert, V.; Rozenberg, G. (eds.).
358:Interaction can be (but isn't always) a
1925:
1639:Discrete and continuous process algebra
1390:
350:during the execution of a computation.
2279:
2269:
2180:Oxford University Computing Laboratory
2036:
2025:
168:Parallel composition of two processes
1643:Process algebra has been studied for
7:
1938:"A brief history of process algebra"
2202:A Calculus of Communicating Systems
2161:Communicating Sequential Processes
1890:Communicating sequential processes
1721:Algebra of Communicating Processes
1709:Communicating Sequential Processes
475:{\displaystyle x\langle y\rangle }
419:{\displaystyle x\langle y\rangle }
25:
1965:. CRC Press. pp. 2190–2207.
1701:Calculus of Communicating Systems
986:receives that message on channel
153:sequentialization of interactions
147:parallel composition of processes
2490:
2489:
1608:{\displaystyle {\mathit {STOP}}}
1405:{\displaystyle P\setminus \{x\}}
1013:Once the message has been sent,
159:recursion or process replication
2259:from the original on 2019-07-09
2248:(in German). Vol. Part 2.
1878:Actor model and process calculi
1723:(ACP), and introduced the term
1555:{\displaystyle {\mathit {nil}}}
2496:Category: Concurrent computing
2091:"Introduction to Trace Theory"
1360:
1350:
1141:
1118:
1088:
1082:
967:
961:
848:
825:
810:
801:
795:
635:
629:
522:
516:
381:
375:
1:
2139:Algebraic Theory of Processes
2089:Mazurkiewicz, Antoni (1995).
1472:{\displaystyle {\mathit {P}}}
1336:{\displaystyle {\mathit {P}}}
1312:{\displaystyle {\mathit {x}}}
1271:{\displaystyle {\mathit {P}}}
1243:{\displaystyle {\mathit {x}}}
1219:{\displaystyle {\mathit {y}}}
1195:{\displaystyle {\mathit {v}}}
1171:{\displaystyle {\mathit {Q}}}
1065:{\displaystyle {\mathit {P}}}
1003:{\displaystyle {\mathit {x}}}
944:{\displaystyle {\mathit {x}}}
920:{\displaystyle {\mathit {y}}}
743:{\displaystyle {\mathit {v}}}
719:{\displaystyle {\mathit {x}}}
695:{\displaystyle {\mathit {P}}}
671:{\displaystyle {\mathit {x}}}
606:{\displaystyle {\mathit {y}}}
582:{\displaystyle {\mathit {x}}}
443:{\displaystyle {\mathit {x}}}
331:{\displaystyle {\mathit {Q}}}
307:{\displaystyle {\mathit {P}}}
283:{\displaystyle {\mathit {Q}}}
259:{\displaystyle {\mathit {P}}}
209:{\displaystyle {\mathit {Q}}}
185:{\displaystyle {\mathit {P}}}
1254:The class of processes that
156:hiding of interaction points
2457:Dining philosophers problem
1988:"A Generic Process Algebra"
1651:(real time or dense time).
1513:{\displaystyle !P=P\mid !P}
1100:{\displaystyle x(v)\cdot Q}
979:{\displaystyle x(v)\cdot Q}
726:substituted for identifier
647:{\displaystyle x(v)\cdot P}
589:and then send that data on
565:first receive some data on
133:, one starts with a set of
2533:
2346:Concurrent data structures
1665:μ-recursive functions
1369:{\displaystyle (\nu \;x)P}
654:will wait for an input on
394:) and an output operator (
2485:
2462:Producer–consumer problem
2447:Cigarette smokers problem
1910:Temporal Process Language
1416:Recursion and replication
2065:10.1007/3-540-56610-4_62
1807:Software implementations
235:{\displaystyle P\vert Q}
125:Mathematics of processes
2477:Sleeping barber problem
2472:Readers–writers problem
1936:Baeten, J.C.M. (2004).
1791:, but is less than the
1699:'s seminal work on the
1628:{\displaystyle \delta }
1380:it might be written as
1226:, the data received on
2351:Concurrent hash tables
2035:Cite journal requires
1629:
1609:
1576:
1556:
1532:(variously denoted as
1514:
1473:
1449:
1406:
1370:
1337:
1313:
1272:
1244:
1220:
1196:
1178:with the place-holder
1172:
1148:
1101:
1066:
1042:
1004:
980:
951:. Dually, the process
945:
921:
903:sends a message, here
897:
855:
744:
720:
696:
672:
648:
616:Sequential composition
607:
583:
559:Sequential composition
549:
529:
496:
476:
444:
420:
388:
332:
308:
284:
260:
236:
210:
186:
18:Sequential composition
2250:University of Hamburg
1821:Concurrency Workbench
1630:
1610:
1577:
1557:
1515:
1474:
1450:
1407:
1371:
1338:
1314:
1295:the hiding of a name
1273:
1245:
1221:
1197:
1173:
1149:
1102:
1067:
1043:
1005:
981:
946:
922:
898:
856:
745:
721:
697:
673:
649:
608:
584:
550:
530:
497:
477:
445:
421:
389:
333:
309:
285:
261:
237:
211:
187:
2322:Concurrent computing
1781:Church–Turing thesis
1677:Church-Turing thesis
1619:
1586:
1566:
1536:
1486:
1459:
1436:
1384:
1347:
1343:can be expressed as
1323:
1299:
1258:
1230:
1206:
1182:
1158:
1111:
1107:becomes the process
1076:
1052:
1048:becomes the process
1017:
990:
955:
931:
927:, along the channel
907:
872:
766:
730:
706:
682:
658:
623:
593:
569:
539:
528:{\displaystyle x(v)}
510:
486:
457:
430:
401:
387:{\displaystyle x(v)}
369:
318:
294:
270:
246:
220:
196:
172:
164:Parallel composition
118:equational reasoning
2341:Concurrency control
2222:, Springer Verlag,
2204:, Springer Verlag,
1661:computable function
754:Reduction semantics
2095:The Book of Traces
1625:
1605:
1572:
1552:
1510:
1469:
1448:{\displaystyle !P}
1445:
1402:
1366:
1333:
1309:
1268:
1240:
1216:
1192:
1168:
1144:
1097:
1062:
1038:
1000:
976:
941:
917:
893:
851:
740:
716:
692:
668:
644:
603:
579:
545:
525:
492:
472:
440:
416:
384:
328:
304:
280:
256:
232:
216:, usually written
206:
182:
94:Essential features
44:concurrent systems
2504:
2503:
1945:Rapport CSR 04-02
1857:generated by the
1688:in 1962, and the
1575:{\displaystyle 0}
1147:{\displaystyle Q}
548:{\displaystyle v}
495:{\displaystyle y}
16:(Redirected from
2524:
2493:
2492:
2435:Classic problems
2411:Ambient calculus
2358:Concurrent users
2315:
2308:
2301:
2292:
2287:
2281:
2277:
2275:
2267:
2265:
2264:
2258:
2243:
2135:Matthew Hennessy
2123:
2122:
2120:
2119:
2113:
2107:. Archived from
2086:
2080:
2079:
2067:
2051:
2045:
2044:
2038:
2033:
2031:
2023:
2021:
2009:
2003:
2002:
2000:
1999:
1983:
1977:
1976:
1959:Pierce, Benjamin
1955:
1949:
1948:
1942:
1933:
1900:Stochastic probe
1800:compositionality
1793:ambient calculus
1738:ambient calculus
1732:Current research
1634:
1632:
1631:
1626:
1614:
1612:
1611:
1606:
1604:
1603:
1581:
1579:
1578:
1573:
1561:
1559:
1558:
1553:
1551:
1550:
1519:
1517:
1516:
1511:
1478:
1476:
1475:
1470:
1468:
1467:
1454:
1452:
1451:
1446:
1411:
1409:
1408:
1403:
1375:
1373:
1372:
1367:
1342:
1340:
1339:
1334:
1332:
1331:
1318:
1316:
1315:
1310:
1308:
1307:
1277:
1275:
1274:
1269:
1267:
1266:
1249:
1247:
1246:
1241:
1239:
1238:
1225:
1223:
1222:
1217:
1215:
1214:
1201:
1199:
1198:
1193:
1191:
1190:
1177:
1175:
1174:
1169:
1167:
1166:
1153:
1151:
1150:
1145:
1140:
1139:
1132:
1126:
1125:
1106:
1104:
1103:
1098:
1071:
1069:
1068:
1063:
1061:
1060:
1047:
1045:
1044:
1039:
1009:
1007:
1006:
1001:
999:
998:
985:
983:
982:
977:
950:
948:
947:
942:
940:
939:
926:
924:
923:
918:
916:
915:
902:
900:
899:
894:
860:
858:
857:
852:
847:
846:
839:
833:
832:
749:
747:
746:
741:
739:
738:
725:
723:
722:
717:
715:
714:
701:
699:
698:
693:
691:
690:
677:
675:
674:
669:
667:
666:
653:
651:
650:
645:
612:
610:
609:
604:
602:
601:
588:
586:
585:
580:
578:
577:
554:
552:
551:
546:
534:
532:
531:
526:
501:
499:
498:
493:
481:
479:
478:
473:
449:
447:
446:
441:
439:
438:
425:
423:
422:
417:
393:
391:
390:
385:
337:
335:
334:
329:
327:
326:
313:
311:
310:
305:
303:
302:
289:
287:
286:
281:
279:
278:
265:
263:
262:
257:
255:
254:
241:
239:
238:
233:
215:
213:
212:
207:
205:
204:
191:
189:
188:
183:
181:
180:
131:process calculus
76:ambient calculus
40:process algebras
32:computer science
21:
2532:
2531:
2527:
2526:
2525:
2523:
2522:
2521:
2517:Process calculi
2507:
2506:
2505:
2500:
2481:
2430:
2378:Process calculi
2372:
2368:Linearizability
2324:
2319:
2278:
2268:
2262:
2260:
2256:
2241:
2233:
2131:
2129:Further reading
2126:
2117:
2115:
2111:
2105:
2088:
2087:
2083:
2076:
2053:
2052:
2048:
2034:
2024:
2011:
2010:
2006:
1997:
1995:
1985:
1984:
1980:
1973:
1957:
1956:
1952:
1940:
1935:
1934:
1927:
1923:
1886:
1846:formal language
1834:
1809:
1769:halting problem
1734:
1725:process algebra
1717:Jan Willem Klop
1673:lambda calculus
1669:Turing machines
1657:
1649:continuous time
1641:
1617:
1616:
1584:
1583:
1564:
1563:
1534:
1533:
1526:
1484:
1483:
1457:
1456:
1434:
1433:
1418:
1382:
1381:
1345:
1344:
1321:
1320:
1297:
1296:
1284:
1256:
1255:
1228:
1227:
1204:
1203:
1202:substituted by
1180:
1179:
1156:
1155:
1133:
1117:
1109:
1108:
1074:
1073:
1050:
1049:
1015:
1014:
988:
987:
953:
952:
929:
928:
905:
904:
870:
869:
840:
824:
764:
763:
756:
728:
727:
704:
703:
680:
679:
656:
655:
621:
620:
591:
590:
567:
566:
561:
537:
536:
508:
507:
504:bound variables
484:
483:
482:, this data is
455:
454:
428:
427:
399:
398:
367:
366:
356:
316:
315:
292:
291:
268:
267:
244:
243:
218:
217:
194:
193:
170:
169:
166:
127:
108:message-passing
96:
84:fusion calculus
36:process calculi
28:
23:
22:
15:
12:
11:
5:
2530:
2528:
2520:
2519:
2509:
2508:
2502:
2501:
2499:
2498:
2486:
2483:
2482:
2480:
2479:
2474:
2469:
2467:Race condition
2464:
2459:
2454:
2449:
2444:
2438:
2436:
2432:
2431:
2429:
2428:
2423:
2418:
2413:
2408:
2403:
2398:
2393:
2388:
2382:
2380:
2374:
2373:
2371:
2370:
2365:
2360:
2355:
2354:
2353:
2343:
2338:
2332:
2330:
2326:
2325:
2320:
2318:
2317:
2310:
2303:
2295:
2289:
2288:
2231:
2213:
2195:
2194:
2193:
2157:C. A. R. Hoare
2154:
2130:
2127:
2125:
2124:
2103:
2081:
2074:
2046:
2037:|journal=
2004:
1978:
1971:
1950:
1924:
1922:
1919:
1918:
1917:
1912:
1907:
1905:Tamarin Prover
1902:
1897:
1892:
1885:
1882:
1838:history monoid
1833:
1830:
1829:
1828:
1823:
1818:
1808:
1805:
1804:
1803:
1796:
1776:
1764:
1757:
1745:
1733:
1730:
1656:
1653:
1640:
1637:
1624:
1602:
1599:
1596:
1593:
1571:
1549:
1546:
1543:
1525:
1522:
1521:
1520:
1509:
1506:
1503:
1500:
1497:
1494:
1491:
1466:
1444:
1441:
1417:
1414:
1401:
1398:
1395:
1392:
1389:
1365:
1362:
1359:
1355:
1352:
1330:
1306:
1283:
1280:
1265:
1252:
1251:
1237:
1213:
1189:
1165:
1143:
1138:
1131:
1124:
1120:
1116:
1096:
1093:
1090:
1087:
1084:
1081:
1059:
1037:
1034:
1031:
1028:
1025:
1022:
1011:
997:
975:
972:
969:
966:
963:
960:
938:
914:
892:
889:
886:
883:
880:
877:
862:
861:
850:
845:
838:
831:
827:
823:
819:
815:
812:
809:
806:
803:
800:
797:
794:
790:
786:
783:
780:
777:
774:
771:
755:
752:
737:
713:
689:
665:
643:
640:
637:
634:
631:
628:
600:
576:
560:
557:
544:
524:
521:
518:
515:
491:
471:
468:
465:
462:
437:
415:
412:
409:
406:
383:
380:
377:
374:
355:
352:
325:
301:
277:
253:
231:
228:
225:
203:
179:
165:
162:
161:
160:
157:
154:
151:
148:
126:
123:
122:
121:
114:
111:
95:
92:
26:
24:
14:
13:
10:
9:
6:
4:
3:
2:
2529:
2518:
2515:
2514:
2512:
2497:
2488:
2487:
2484:
2478:
2475:
2473:
2470:
2468:
2465:
2463:
2460:
2458:
2455:
2453:
2450:
2448:
2445:
2443:
2440:
2439:
2437:
2433:
2427:
2426:Join-calculus
2424:
2422:
2419:
2417:
2414:
2412:
2409:
2407:
2404:
2402:
2399:
2397:
2394:
2392:
2389:
2387:
2384:
2383:
2381:
2379:
2375:
2369:
2366:
2364:
2363:Indeterminacy
2361:
2359:
2356:
2352:
2349:
2348:
2347:
2344:
2342:
2339:
2337:
2334:
2333:
2331:
2327:
2323:
2316:
2311:
2309:
2304:
2302:
2297:
2296:
2293:
2285:
2273:
2255:
2251:
2247:
2240:
2236:
2235:Valk, RĂĽdiger
2232:
2229:
2228:0-521-65869-1
2225:
2221:
2217:
2214:
2211:
2210:0-387-10235-3
2207:
2203:
2199:
2196:
2191:
2190:
2185:
2181:
2177:
2176:
2174:
2173:0-13-153289-8
2170:
2166:
2165:Prentice Hall
2162:
2158:
2155:
2152:
2151:0-262-08171-7
2148:
2144:
2143:The MIT Press
2140:
2136:
2133:
2132:
2128:
2114:on 2011-06-13
2110:
2106:
2104:981-02-2058-8
2100:
2096:
2092:
2085:
2082:
2077:
2075:9783540475989
2071:
2066:
2061:
2057:
2050:
2047:
2042:
2029:
2020:
2019:10.1.1.42.729
2015:
2008:
2005:
1993:
1989:
1982:
1979:
1974:
1972:0-8493-2909-4
1968:
1964:
1960:
1954:
1951:
1946:
1939:
1932:
1930:
1926:
1920:
1916:
1913:
1911:
1908:
1906:
1903:
1901:
1898:
1896:
1893:
1891:
1888:
1887:
1883:
1881:
1879:
1875:
1871:
1867:
1862:
1860:
1856:
1852:
1847:
1843:
1839:
1831:
1827:
1826:mCRL2 toolset
1824:
1822:
1819:
1817:
1814:
1813:
1812:
1806:
1801:
1797:
1794:
1790:
1786:
1782:
1777:
1774:
1773:Bisimulations
1770:
1765:
1762:
1758:
1755:
1750:
1746:
1743:
1742:
1741:
1739:
1731:
1729:
1726:
1722:
1718:
1714:
1710:
1706:
1702:
1698:
1693:
1691:
1687:
1682:
1678:
1674:
1670:
1666:
1662:
1654:
1652:
1650:
1646:
1645:discrete time
1638:
1636:
1622:
1569:
1531:
1523:
1507:
1504:
1501:
1498:
1495:
1492:
1489:
1482:
1481:
1480:
1442:
1439:
1431:
1430:
1425:
1424:
1415:
1413:
1396:
1387:
1379:
1363:
1357:
1353:
1294:
1290:
1281:
1279:
1136:
1129:
1122:
1114:
1094:
1091:
1085:
1079:
1035:
1032:
1026:
1020:
1012:
973:
970:
964:
958:
890:
887:
881:
875:
867:
866:
865:
843:
836:
829:
821:
813:
807:
804:
798:
792:
784:
781:
775:
769:
762:
761:
760:
753:
751:
641:
638:
632:
626:
617:
613:
558:
556:
542:
519:
513:
505:
489:
466:
460:
451:
410:
404:
397:
378:
372:
365:
361:
354:Communication
353:
351:
349:
345:
339:
229:
223:
163:
158:
155:
152:
149:
146:
145:
144:
142:
141:
136:
132:
124:
119:
115:
112:
109:
105:
104:
103:
101:
93:
91:
89:
88:join-calculus
85:
81:
77:
73:
69:
65:
61:
57:
53:
49:
45:
41:
37:
33:
19:
2416:API-Calculus
2377:
2261:. Retrieved
2245:
2219:
2216:Robin Milner
2201:
2198:Robin Milner
2187:
2186:file at the
2160:
2138:
2116:. Retrieved
2112:(PostScript)
2109:the original
2094:
2084:
2055:
2049:
2028:cite journal
2007:
1996:. Retrieved
1991:
1981:
1962:
1953:
1944:
1863:
1835:
1810:
1754:type systems
1748:
1735:
1724:
1713:Jan Bergstra
1705:C.A.R. Hoare
1697:Robin Milner
1694:
1680:
1660:
1658:
1642:
1530:null process
1529:
1527:
1524:Null process
1427:
1421:
1419:
1288:
1285:
1253:
868:The process
863:
757:
615:
564:
562:
452:
395:
363:
359:
357:
347:
340:
167:
138:
134:
130:
129:To define a
128:
97:
52:bisimulation
39:
35:
29:
2442:ABA problem
2336:Concurrency
2280:|work=
1874:actor model
1866:concurrency
1859:Kleene star
1851:free monoid
1842:free object
1761:Hoare logic
1690:actor model
1479:processes:
1429:replication
1376:, while in
1154:, which is
2406:Ď€-calculus
2263:2019-07-13
2118:2009-04-29
1998:2007-12-29
1921:References
1915:Ď€-calculus
1870:Petri nets
1868:, such as
1789:Ď€-calculus
1785:Ď€-calculus
1686:Petri nets
1681:sequential
1293:Ď€-calculus
344:Ď€-calculus
100:stochastic
72:Ď€-calculus
2282:ignored (
2272:cite book
2189:Using CSP
2014:CiteSeerX
1623:δ
1502:∣
1423:Recursion
1391:∖
1354:ν
1092:⋅
1033:⋅
1030:⟩
1024:⟨
971:⋅
888:⋅
885:⟩
879:⟨
811:⟶
805:⋅
782:⋅
779:⟩
773:⟨
639:⋅
470:⟩
464:⟨
414:⟩
408:⟨
48:algebraic
2511:Category
2452:Deadlock
2254:Archived
2252:. FGI2.
2192:website.
1895:ProVerif
1884:See also
1872:and the
1855:alphabet
1671:and the
1072:, while
360:directed
140:channels
86:and the
2329:General
1840:is the
1663:, with
1655:History
348:created
2494:
2226:
2208:
2171:
2149:
2101:
2072:
2016:
1969:
1289:Hiding
1282:Hiding
82:, the
74:, the
66:, and
34:, the
2401:LOTOS
2257:(PDF)
2242:(PDF)
1941:(PDF)
1876:(see
135:names
68:LOTOS
2421:PEPA
2284:help
2224:ISBN
2206:ISBN
2169:ISBN
2147:ISBN
2099:ISBN
2070:ISBN
2041:help
1967:ISBN
1836:The
1816:CADP
1749:wild
1715:and
1647:and
1426:and
759:is:
396:e.g.
364:e.g.
266:and
192:and
137:(or
80:PEPA
38:(or
2396:ACP
2391:CCS
2386:CSP
2184:PDF
2060:doi
1861:).
1771:).
1707:'s
1378:CSP
1319:in
614:.
314:to
64:ACP
60:CCS
56:CSP
30:In
2513::
2276::
2274:}}
2270:{{
2244:.
2218::
2200::
2175:.
2167:,
2163:,
2159::
2145:,
2141:,
2137::
2068:.
2032::
2030:}}
2026:{{
1990:.
1943:.
1928:^
1667:,
1615:,
1582:,
1562:,
1412:.
750:.
535:,
90:.
78:,
62:,
58:,
2314:e
2307:t
2300:v
2286:)
2266:.
2230:.
2212:.
2153:.
2121:.
2078:.
2062::
2043:)
2039:(
2022:.
2001:.
1975:.
1795:.
1763:.
1756:.
1601:P
1598:O
1595:T
1592:S
1570:0
1548:l
1545:i
1542:n
1508:P
1505:!
1499:P
1496:=
1493:P
1490:!
1465:P
1443:P
1440:!
1400:}
1397:x
1394:{
1388:P
1364:P
1361:)
1358:x
1351:(
1329:P
1305:x
1264:P
1250:.
1236:x
1212:y
1188:v
1164:Q
1142:]
1137:v
1130:/
1123:y
1119:[
1115:Q
1095:Q
1089:)
1086:v
1083:(
1080:x
1058:P
1036:P
1027:y
1021:x
1010:.
996:x
974:Q
968:)
965:v
962:(
959:x
937:x
913:y
891:P
882:y
876:x
849:]
844:v
837:/
830:y
826:[
822:Q
818:|
814:P
808:Q
802:)
799:v
796:(
793:x
789:|
785:P
776:y
770:x
736:v
712:x
688:P
664:x
642:P
636:)
633:v
630:(
627:x
599:y
575:x
543:v
523:)
520:v
517:(
514:x
490:y
467:y
461:x
436:x
411:y
405:x
382:)
379:v
376:(
373:x
324:Q
300:P
276:Q
252:P
230:Q
227:|
224:P
202:Q
178:P
120:.
20:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.