7194:
novelty is that the join pattern can contains now propagated and simplified parts. So in Scheme, the part before / is propagated and the part after / is removed. The use of the Goal-Based is to divise the work in many tasks and joins all results at the end with the join pattern. A system named "MiniJoin" has implemented to use the intermediate result to solve the others tasks if it's possible. If is not possible it waits the solution of others tasks to solve itself.
2098:
location controls its own moves, and can only move towards a location whose name it has received. This provides a sound basis for static analysis and for secure mobility. This is complete for expressing distributed configurations. In the absence of failure, however, the execution of processes is independent of distribution. This location transparency is essential for the design of mobiles agents, and very helpful for checking their properties.
10034:
10024:
36:
2540:
are three possible methods that may be called. The ordered class modifier is used here to determine which Join method will be called. The default and when using the unordered class modifier is to pick one of the methods at random. With the ordered modifier the methods are prioritised according to the order they are declared.
2011: : It could also use an asynchronous channel which return no result but take arguments. The continuation of an asynchronous pattern runs in a newly spawned thread. A join pattern may be purely asynchronous, provided its continuation is a subroutine and its When clause only lists asynchronous channels.
6696:
facilities of this language have been generalized to allow representation independence for objects used in pattern matching. So now it's possible to use a new type of abstraction in libraries. The advantage of join patterns is that they allow a declarative specification of the synchronization between
2092:
The processes of an agent is specified as a set which define its functionality including asynchronous emission of a message, migration to other location. Consequently, locations are organized in a tree to represent the movement of the agent easier. With this representation, a benefit of this solution
7040:
With a class we declare events in regular fields. So, it's possible to use the Join construct to enable a pattern matching via a list of case declarations. That list is representing by => with on each side a part of the declaration. The left-side is a model of join pattern to show the combination
392:
From a client’s perspective, a channel just declares a method of the same name and signature. The client posts a message or issues a request by invoking the channel as a method. A continuation method must wait until/unless a single request or message has arrived on each of the channels following the
7196:
So the concurrent join pattern application executed in parallel on a multi-core architecture doesn't guarantee that parallel execution lead to conflicts. To
Guarantee this and a high degree of parallelism, a Software Transactional Memory (STM) within a highlytuned concurrent data structure based on
2142:
It represents the consumption of message arrive at a completed join model. Each state is a possibly step for the code execution and each transitions is the reception of a message to change between two steps. And so when all messages are grab, the compiler execute the body join code corresponding to
2088:
The mobile agents can be used to match concurrency and distribution if one uses the Join-calculus. That's why a new concept named "distributed Join-calculus" was created; it's an extension of Join-calculus with locations and primitives to describe the mobility. This innovation use agents as running
2539:
Join fragments can be repeated in multiple Join patterns so there can be a case when multiple Join patterns are completed when a fragment is called. Such a case could occur in the example below if B(), C() and D() then A() are called. The final A() fragment completes three of the patterns so there
2408:
is defined by two or more Join fragments. A Join method will execute once all the fragments of the Join pattern have been called. If the return type is a standard Java type then the leading fragment will block the caller until the Join pattern is complete and the method has executed. If the return
429:, allows mathematical formalisms for describing and analyzing properties of concurrent computation by using channel names to be communicated along the channels themselves, and in this way it is able to describe concurrent computations whose network configuration may change during the computation.
7193:
Guards is essential to guarantee that only data with a matching key is updated/retrieved. Propagation can cancel an item, reads its contents and puts backs an item into a store. Of course, the item is also in the store during the reading. The guards is expressed with shared variables. And so the
6326:
An extension of Visual Basic 9.0 with asynchronous concurrency constructs, called
Concurrent Basic (for short CB), offer the join patterns. CB (builds on earlier work on Polyphonic C#, Cω and the Joins Library) adopts a simple event-like syntax familiar to VB programmers, allows one to declare
2156:
Recent research describe the compilation scheme as the combination of two basic steps: dispatching and forwarding. The design and correctness of the dispatcher essentially stems from pattern matching theory, while inserting an internal forwarding step in communications is a natural idea, which
2097:
So the Join-calculus is the core of a distributed programming language. In particular, the operational semantics is easily implementable in a distributed setting with failures. So the distributed join-calculus treats channel names and location names as first class values with lexical scopes. A
2102:
In 2007, an extension of the basic join calculus with methods which make agents proactive has come out. The agents can observe an environment shared between them. With this environment, it is possible to define shared variables with all agents (e.g. a naming service to discover agents between
7189:
The Join
Patterns allows a new programming type especially for the multi-core architectures available in many programming situations with a high-levels of abstraction. This is based on the Guards and Propagation. So an example of this innovation has been implemented in Scheme .
2093:
is the possibility to create a simple model of failure. Usually a crash of a physical site causes the permanent failure of all its locations. But with the join-calculus a problem with a location can be detected at any other running location, allowing error recovery.
1999: : Channels are used to synchronize and pass messages between concurrently executing threads. In general, a channel may be involved in more than one join pattern, each pattern defines a different continuation that may run when the channel is invoked .
2159:
the worth observing is a direct implementation of extended join-pattern matching at the runtime level would significantly complicate the management of message queues, which would then need to be scanned in search of matching messages before consuming
407:
In most of cases, the order of synchronous calls is not guaranteed for performance reasons. Finally, during the match the messages available in the queue could be stolen by some intervening thread; indeed, the awakened thread may have to wait again.
2152:
The fundamental difference is when the guard process is executed, for the first, it was verify if all names are the pending messages ready whereas the second use only one variable and access at the others to know if the model is completed.
291:
Unlike an event handler, which services one of several alternative events at a time, in conjunction with all other handlers on that event, a join pattern waits for a conjunction of channels and competes for execution with any other enabled
3750:
is an extension of the C# programming language. It introduces a new concurrency model with synchronous and asynchronous (which return control to the caller) methods and chords (also known as ‘synchronization patterns’ or ‘join patterns’).
2481:
are defined by using the signal return type. This has the same characteristics as the void type except that the method will return immediately. When an asynchronous method is called a new thread is created to execute the body of the
2089:
processes with their communication capabilities to allow an idea of location, which is a physical site expressing the actual position of the agent. Thanks to the Join-calculus, one location can be moved atomically to another site.
2084:
is an autonomous software agent with a certain social ability and most importantly, mobility. It is composed of computer software and data which can move between different computers automatically while continuing their executions.
7197:
atomic compare-and-swap (CAS) is use. This allows to run many concurrents operations in parallel on multi-core architecture. Moreover, an atomic execution is used to prevent the "false conflict" between CAS and STM.
2111:
Join-languages are built on top of the join-calculus taken as a core language. So all the calculus are analysed with asynchronous processes and the join pattern provides a model to synchronize the result.
449:. It was developed to provide a formal basis for the design of distributed programming languages, and therefore intentionally avoids communications constructs found in other process calculi, such as
393:
continuation’s When clause. If the continuation gets to run, the arguments of each channel invocation are dequeued (thus consumed) and transferred (atomically) to the continuation’s parameters.
287:
to run (in a new thread if it's in asynchronous context) otherwise the message is queued until one of its patterns is enabled; if there are several matches, an unspecified pattern is selected.
461:
The Join-Calculus is both a name passing calculus and a core language for concurrent and distributed programming. That's why the
Distributed Join-Calculus based on the Join-Calculus with the
4164:
language. It extends OCaml with support for concurrency and synchronization, the distributed execution of programs, and the dynamic relocation of active program fragments during execution.
10070:
2014:
Combine synchronous and asynchronous : Merging the declarations of synchronous and asynchronous buffer would yield a module that supports the two communication type of consumers.
437:
Join patterns first appeared in
Fournet and Gonthier’s foundational join-calculus, an asynchronous process algebra designed for efficient implementation in a distributed setting. The
507:
Scala Joins is a library to use Join-Pattern with Scala in the context of extensible pattern matching in order to integrate joins into an existing actor-based concurrency framework.
6461:
This library is a high-level abstractions of the Join
Pattern using objects and generics. Channels are special delegate values from some common Join object (instead of methods).
518:
is a language which natively supports the concurrent, real time and distributed paradigm. Concurrency between processes was complex, that's why the project build a new language,
2177:
but others languages integrate join-pattern by a library like Scala Joins for Scala or the Joins library for VB. Moreover, the join-pattern is used through some languages like
6327:
generic concurrency abstractions and provides more natural support for inheritance, enabling a subclass to augment the set of patterns. CB class can declare method to execute
54:
7205:
Join
Pattern is not the only pattern to perform multitasks but it's the only one that allow communication between resources, synchronization and join different processes.
2150:
Jocaml use name like a pointer on definitions. This definitions store the others pointer of the others names with a status field and a matching date structure by message.
2005: : The join-pattern could use a synchronous channel which return a result. The continuation of a synchronous pattern runs in the thread of the synchronous sender.
465:
was created on 1996. This work use the mobile agents where agents are not only programs but core images of running processes with their communication capabilities.
218:. Concretely, this is done by allowing the join definition of several functions and/or channels by matching concurrent call and messages patterns. It is a type of
9510:
499:
Cω is adaptation of join-calculus to an object-oriented setting. This variant of
Polyphonic C# was included in the public release of Cω (a.k.a. Comega) in 2004.
300:
This flow diagram shows how the join pattern is executed by a general match with different channels (wait a chord) and synchronizes the resources (free or lock).
476:
and Funnel are functional languages supporting declarative join patterns. They present the ideas to direct implement a process calculi in a functional setting.
4156:
is the first language where the join-pattern was implemented. Indeed, at the beginning all the different implementation was compiled with the JoCaml
Compiler.
10063:
234:) is like a super pipeline with synchronisation and matching. In fact, this concept is summarise by match and join a set of message available from different
5279:
input tuple type specifying a '*' for non required channels, giving an expression whose type conform to the output tuple, marking '*' the non fed outputs.
4130:
It's an easy to use declarative and scalable join-pattern library. In opposite to the Russo library, it has no global lock. In fact, it's working with a
2169:
There are many uses of the Join-patterns with different languages. Some languages use join-patterns as a base of theirs implementations, for example the
199:
and locks, this is a high level programming model using communication constructs model to abstract the complexity of concurrent environment and to allow
8822:
8674:
8865:
2146:
So in the join-calculus, the basic values are the names like on the example is A,B or C. So the two compiler representing this values with two ways.
10056:
7886:
Fournet, Cedric; Le
Fessant, Fabrice; Maranget, Luc; Schmitt, A. (2003). "JoCaml: A Language for Concurrent Distributed and Mobile Programming".
4141:
Lazy queue saves both on allocation and potentially on interprocessor communication by avoiding allocate or enqueue with an optimistic fast-path;
8662:
400:
10163:
10153:
8460:
2409:
type is of type signal then the leading fragment will return immediately. All trailing fragments are asynchronous so will not block the caller.
297:
10211:
10168:
10158:
10148:
9893:
9822:
8770:
8719:
8625:
8581:
8507:
8391:
8335:
8292:
8259:
8221:
8191:
8158:
8128:
8080:
7998:
7903:
7870:
7725:
7577:
Guzev, Vadim B. (April 2008). "Parallel C#: The Usage of Chords and Higher-Order Functions in the Design of Parallel Programming Languages".
7567:
7494:
7457:
7411:
7365:
7328:
7301:
10125:
9716:
9619:
8097:
7513:
8827:
6697:
different threads. Often, the join patterns corresponds closely to a finite state machine that specifies the valid states of the object.
131:
9503:
9390:
7591:
10234:
9696:
9563:
9548:
9415:
7936:
72:
222:
because it makes easier and more flexible for these entities to communicate and deal with the multi-threaded programming paradigm.
9188:
7041:
of events asynchronous and synchronous and the right-side is the body of join which is executed with the join model is completed.
10140:
8642:
10120:
9363:
8987:
7580:
Proceedings of the 2008 International Conference on Parallel and Distributed Processing Techniques and Applications, PDPTA 2008
308:
that supports two different operations, sending and receiving, we need two join calculus names to implement it: a channel name
8696:. Lecture Notes in Computer Science. Vol. 4354. Cambridge: Practical Aspects of Declarative Languages. pp. 260–274.
7342:. Lecture Notes in Computer Science. Vol. 4354. Cambridge: Practical Aspects of Declarative Languages. pp. 260–274.
10229:
10200:
10115:
10027:
9852:
9779:
9769:
9614:
9543:
9171:
9081:
5251:
9903:
9211:
1136:
9181:
9176:
8242:
Fournet, Cédric; Gonthier, Georges; Levy, Jean-Jacques; Maranget, Luc; Remy, Didier (1996). "A calculus of mobile agents".
10130:
10037:
9832:
9774:
9496:
8858:
7167:
2686:
2678:
2674:
2178:
2057:
515:
7209:
Sequence pattern : consists of waiting that a task have completed to switch to another (the classic implementation).
2696:
allows first Match semantics and the possibility of having multiple patterns with a preservation of the messages's order.
9842:
9701:
9568:
6700:
In Scala, it's possible to solve many problem with the pattern matching and Scala Joins, for example the Reader-Writer.
8552:
7044:
In Scala, it's also possible to use the Scala's actor library with the join pattern. For example, an unbounded buffer:
6331:
communication has occurred on a particular set of local channels asynchronous and synchronous, forming a join pattern.
2148:
Join compiler use a vector with Two slots, the first to the name it-self and the second to a queue of pending messages.
2117:
Join Compiler: A compiler of a language named "join langage". This language has been created only for the join calculus
2060: : Software transactional memory (STM) is one of the possible implementation for the communications between joint.
9764:
9759:
9573:
9456:
9294:
7232:
5232:
2398:
727:
151:
8275:
Maludzinski, Slawomir; Dobrowolski, Grzegorz (2007). "Agent Environment and Knowledge in Distributed Join Calculus".
7311:
Maludzinski, Slawomir; Dobrowolski, Grzegorz (2007). "Agent Environment and Knowledge in Distributed Join Calculus".
519:
8368:. Lecture Notes in Computer Science. Vol. 5052. Lausanne: Coordination Models and Languages. pp. 135–152.
7388:. Lecture Notes in Computer Science. Vol. 5052. Lausanne: Coordination Models and Languages. pp. 135–152.
2951:
provides additional filtering not expressing in terms of patterns. Limited number of expression without side-effects
10189:
9959:
9807:
9802:
9754:
9731:
9711:
9071:
542:
2677:
coding synchronisation between multiple processes is not straightforward. That's why the JErlang, an extension of
9964:
9954:
9279:
9274:
9101:
8612:
8208:
8178:
8145:
8115:
7554:
7241:– The join-calculus was developed to provide a formal basis for the design of distributed programming languages.
9867:
9666:
9649:
9558:
9319:
9284:
9251:
8901:
8851:
8031:
In Proceedings of the 16th European Conference on Object-Oriented Programming (ECOOP 2002), Number 2374 in LNCS
7698:
Fournet, Cédric; Gonthier, Georges (2002). "The Join Calculus: A Language for Distributed Mobile Programming".
7430:
Fournet, Cédric; Gonthier, Georges (2002). "The Join Calculus: A Language for Distributed Mobile Programming".
250:
to run some tasks with the different collected messages. A constructed join pattern typically takes this form:
9116:
2123:
1372:
7853:
Fournet, Cédric; Gonthier, Georges; Levy, Jean-Jacques; Maranget, Luc (1996). "A calculus of mobile agents".
7284:
Fournet, Cédric; Gonthier, Georges; Levy, Jean-Jacques; Maranget, Luc (1996). "A calculus of mobile agents".
3835:
language is an adaptation of the Polyphonic C# language for the case of concurrent distributed computations.
3541:
479:
Another extensions to (non-generic) Java, JoinJava, were independently proposed by von Itzstein and Kearney.
155:
9817:
9661:
9221:
9193:
9131:
9096:
9032:
8874:
8678:
2051:
2027:
1806:
267:
may be a synchronous or asynchronous channel or an array of asynchronous channels. Each subsequent argument
188:
100:
9872:
9629:
9624:
9198:
9126:
9076:
8911:
8697:
8466:
8369:
8313:
7703:
7472:
7435:
7389:
7343:
5243:
4115:
2033:
2021:
2017:
450:
8538:
9691:
9644:
9477:
9380:
9226:
9206:
9151:
538:"Join-patterns can be used to easily encode related concurrency idioms like actors and active objects."
462:
324:. Each time functions are concurrently, triggers the return process and synchronizes with other joins.
8246:. Lecture Notes in Computer Science. Vol. 1119. Le Chesnay: Concurrency Theory. pp. 406–421.
7857:. Lecture Notes in Computer Science. Vol. 1119. Le Chesnay: Concurrency Theory. pp. 406–421.
7288:. Lecture Notes in Computer Science. Vol. 1119. Le Chesnay: Concurrency Theory. pp. 406–421.
10108:
10079:
9989:
9827:
9686:
9676:
9588:
9533:
9519:
9289:
9246:
9241:
9231:
9141:
8485:
7921:
Proceedings. First and Third International Symposium on Agent Systems Applications, and Mobile Agents
5247:
2045:
180:
96:
91:
8702:
8597:
8374:
8318:
7477:
7394:
7348:
4253:* 0 in an asynchronous message position means STOP ("no sent message" in CSP terminology).
3934:
is based Polyphonic C# and they add some new concepts like movables methods, high-order functions.
3734:
This example shows us a thread safe buffer and message queue with the basic operations put and get.
10009:
9994:
9862:
9726:
9634:
9578:
9329:
9314:
9309:
9166:
9051:
8997:
7235:– Joins is an asynchronous concurrent computing API from Microsoft Research for the .NET Framework.
3549:
219:
204:
7708:
7440:
6453:
This example shows all new keywords used by Concurrent Basic: Asynchronous, Synchronous and When.
5246:
language for limited resources platforms, with concurrency based on asynchronous message passing,
9999:
9639:
9451:
9430:
9339:
9236:
9086:
8979:
8931:
8893:
8364:
Haller, Phillip; Van Cutsem, Tom (2008). "Implementing Joins Using Extensible Pattern Matching".
8341:
8014:
Itzstein, G. S.; Kearney, D. (2001). "Join Java: An alternative concurrency semantics for Java".
7942:
7578:
7500:
7384:
Haller, Phillip; Van Cutsem, Tom (2008). "Implementing Joins Using Extensible Pattern Matching".
4119:
3747:
2662:
2170:
488:
238:, then handles them all simultaneously with one handler. It could be represented by the keywords
196:
184:
107:
8571:
487:
Cardelli, Benton and Fournet proposed an object-oriented version of join patterns for C# called
2681:
was created, The J is for Join. Indeed, To overcome this limitation JErlang was implemented, a
10103:
10098:
9913:
9671:
9121:
8964:
8954:
8949:
8921:
8916:
8832:
8766:
8735:
8715:
8621:
8577:
8503:
8387:
8331:
8288:
8255:
8217:
8187:
8154:
8124:
8076:
7994:
7932:
7899:
7866:
7721:
7587:
7563:
7490:
7453:
7407:
7361:
7324:
7297:
4134:
CAS and Atomic message system. The library use three improvements for the join-pattern :
8046:
Modern Concurrency Abstractions for C#. ACM Transactions on Programming Languages and Systems
4122:). The Joins Concurrency Library for C# and other .NET languages is derived of this project.
9984:
9928:
9706:
9598:
9593:
9420:
9161:
9106:
9027:
9017:
9007:
9002:
8758:
8707:
8493:
8421:
8379:
8323:
8280:
8247:
8068:
8067:. MODULARITY '14. New York, NY, USA: Association for Computing Machinery. pp. 205–216.
7984:
7924:
7891:
7858:
7815:
7788:
7761:
7713:
7680:
7639:
7541:
7482:
7445:
7399:
7353:
7316:
7289:
6693:
4131:
2039:
2008:
999:
442:
215:
10004:
9857:
9837:
9721:
9583:
9410:
9356:
9334:
9111:
9066:
9037:
9012:
8992:
8939:
8906:
8882:
5236:
5039:(* new_vending: drink Join.chan -> int Join.chan -> (int->unit)*(int->unit) *)
3545:
2127:
2002:
1990:
426:
192:
8489:
399:
316:
for receiving a value (a request). The meaning of the join definition is that a call to
9908:
9812:
9553:
9395:
9256:
8959:
8944:
8359:
8357:
8355:
5240:
2063:
296:
8308:
Ma, Qin; Maranget, Luc (5 April 2004). "Compiling Pattern Matching in Join-Patterns".
7467:
Ma, Qin; Maranget, Luc (5 April 2004). "Compiling Pattern Matching in Join-Patterns".
1987: : The first apparition of the Join-Pattern comes out with this process calculus.
10223:
9888:
9656:
9216:
9061:
9022:
8969:
8804:
8787:
8445:
7522:
7422:
7238:
4144:
A status "WOKEN" : ensures that a blocked synchronous caller is woken only once.
2682:
1984:
446:
438:
422:
235:
211:
168:
7946:
4250:* only the last statement in a pattern rhs expression can be an asynchronous message
2401:
allowing the use of the join calculus. It introduces three new language constructs:
2054: : Jobs could be scatter on different agent and environments with this pattern.
10093:
9923:
9918:
9847:
9472:
9435:
9324:
9299:
8345:
7504:
7166:
are newer implementations of the Join Pattern, improving upon Dr. Philipp Haller's
2081:
139:
8059:
Van Ham, Jurgen M.; Salvaneschi, Guido; Mezini, Mira; Noyé, Jacques (2014-04-22).
2066: : The pattern could allow patterns declared on overlapping sets of channels.
283:
More precisely, when a message matches with a chain of linked patterns causes its
10048:
8762:
8757:. Lecture Notes in Computer Science. Vol. 4467. Springer. pp. 171–190.
8711:
8462:
Hardware Join Java: A High Level Language For Reconfigurable Hardware Development
8327:
8284:
7702:. Lecture Notes in Computer Science. Vol. 2395. Springer. pp. 268–332.
7486:
7434:. Lecture Notes in Computer Science. Vol. 2395. Springer. pp. 268–332.
7357:
7320:
7254:
9425:
9400:
9385:
9304:
9136:
8556:
8498:
8383:
7919:
Conchon, S.; Le Fessant, F. (1999). "Jocaml: Mobile agents for Objective-Caml".
7895:
7403:
5301:
can specify exception handlers with expressions conforming to the output tuple.
2030: : The join-pattern is first of all a behavioral and a concurrency pattern.
1996:
200:
8484:. Lecture Notes in Computer Science. Vol. 6116. Springer. pp. 61–75.
8029:
Benton, N.; Fournet, C. (June 2002). "Modern concurrency abstractions for C#".
2130:: A compiler of an extension of Objectif Caml created to use the join calculus.
9933:
9898:
8312:. Lecture Notes in Computer Science. Vol. 3170. INRIA. pp. 417–431.
7928:
7471:. Lecture Notes in Computer Science. Vol. 3170. INRIA. pp. 417–431.
7219:
143:
8251:
7862:
7293:
5290:
a tuple of corresponding input origins or sources and optionally start values
2157:
intuitively does not change process behavior. They made the observation that
1993: : Join-pattern works with a message passing system for parallel reason.
9405:
8480:
Plociniczak, Hubert; Eisenbach, Susan (2010). "JErlang: Erlang with Joins".
8425:
8072:
7989:
7819:
7792:
7765:
7717:
7684:
7643:
7545:
7449:
8843:
8838:
8750:
8641:
Fournet, Cedric; Le Fessant, Fabrice; Maranget, Luc; Schmitt, Alan (2003).
7178:
4241:* synchronous_reply :== "reply" "to" channel_name
8060:
7839:
7376:
7163:
4235:* "&" in the left side of = means join (channel synchronism)
9681:
3923:
This example demonstrates the using of chords as a synchronization tool.
17:
9488:
8652:. Lecture Notes in Computer Science. Springer-Verlag. pp. 129–158.
8412:
Russo, Claudio V. (23 October 2008). "Join Patterns for Visual Basic".
8279:. Lecture Notes in Computer Science. Vol. 4696. pp. 298–300.
7890:. Lecture Notes in Computer Science. Vol. 2638. pp. 129–158.
7806:
Russo, Claudio V. (23 October 2008). "Join Patterns for Visual Basic".
7779:
Russo, Claudio V. (23 October 2008). "Join Patterns for Visual Basic".
7752:
Russo, Claudio V. (27 October 2008). "Join patterns for visual basic".
7671:
Russo, Claudio V. (27 October 2008). "Join patterns for visual basic".
7630:
Russo, Claudio V. (23 October 2008). "Join Patterns for Visual Basic".
7532:
Russo, Claudio V. (23 October 2008). "Join Patterns for Visual Basic".
7315:. Lecture Notes in Computer Science. Vol. 4696. pp. 298–300.
7159:
8643:"JoCaml: a Language for Concurrent Distributed and Mobile Programming"
7616:
7269:
9538:
5293:
a tuple of output destinations, being channels or sinks (stdout, ..).
4153:
7983:. Lecture Notes in Computer Science. Vol. 1782. pp. 1–25.
7960:
Odersky, Martin (September 2000). "An overview of functional nets".
2120:
9738:
8525:"Join – Asynchronous Message Coordination and Concurrency Library"
8524:
7218:) : perform several tasks in parallel at the same time (e.g.
4238:* "&" in the right hand side means: parallel process
4161:
4111:
398:
295:
231:
147:
113:
8407:
8405:
8403:
8061:"JEScala: Modular coordination with declarative events and joins"
7657:
3931:
9949:
8806:
Pattern-based Coordination in Process-based Service Compositions
8789:
Pattern-based Coordination in Process-based Service Compositions
7524:
Pattern-based Coordination in Process-based Service Compositions
10052:
9492:
8847:
7257:. Institut National de Recherche en Informatique et Automatique
207:
between messages atomically consumed from a group of channels.
8237:
8235:
8233:
8065:
Proceedings of the 13th international conference on Modularity
242:
to specify the first communication that we expected, with the
29:
8663:
Hammond/Michaelson/Sun – Programming reactive systems in Hume
4244:* synchronous channels have function-like types (`a -> `b)
3216:
allows for copying correct messages instead of removing them.
8216:. New York: Association for Computing Machinery. p. 2.
8186:. New York: Association for Computing Machinery. p. 3.
8153:. New York: Association for Computing Machinery. p. 1.
8123:. New York: Association for Computing Machinery. p. 4.
2134:
This two compiler works with the same system, an automaton.
8809:, Leuven Belgium: Katholiek Universiteit Leuven, p. 70
8792:, Leuven Belgium: Katholiek Universiteit Leuven, p. 68
8016:
Technical Report ACRC-01-001, University of South Australia
6684:
This example shows how to use methods of the Join object.
5531:-- * wildcards for unfilled outputs, and unconsumed inputs
5260:
It wraps a join-pattern set with a channel in common as a
4157:
3832:
2174:
2020: : There is a scheduling between join patterns (e.g.
473:
8692:
Russio, Claudio (2006). "The Joins Concurrency Library".
8172:
8170:
8109:
8107:
7833:
7831:
7829:
7338:
Russio, Claudio (2006). "The Joins Concurrency Library".
4138:
Stealing message for unused resources (allowing barging);
304:
Join-pattern is defined by a set of pi-calculus channels
7838:
Maranget, Luc; Le Fessant, Fabrice (25 September 2007).
7375:
Maranget, Luc; Le Fessant, Fabrice (25 September 2007).
3553:
123:
50:
8098:"Higher Order Combinators for Join Patterns using STM"
7514:"Higher Order Combinators for Join Patterns using STM"
7181:
is an implementation of the Join Pattern in Haskell.
8446:"Parallel Join Patterns with Guards and Propagation"
7423:"Parallel Join Patterns with Guards and Propagation"
7272:. Cunningham & Cunningham, Inc. October 25, 2009
10139:
10086:
9977:
9942:
9881:
9795:
9788:
9747:
9607:
9526:
9465:
9444:
9373:
9348:
9265:
9150:
9050:
8978:
8930:
8892:
8881:
8611:Aaron, Turon; Russo, Claudio V. (27 October 2011).
8207:Aaron, Turon; Russo, Claudio V. (27 October 2011).
8177:Aaron, Turon; Russo, Claudio V. (27 October 2011).
8144:Aaron, Turon; Russo, Claudio V. (27 October 2011).
8114:Aaron, Turon; Russo, Claudio V. (27 October 2011).
7553:Aaron, Turon; Russo, Claudio V. (27 October 2011).
6692:The Scala Joins library uses the Join-Pattern. The
2042: : The join-pattern works with matching tasks.
321:
317:
276:
272:
264:
247:
243:
239:
162:
129:
119:
106:
90:
45:
may be too technical for most readers to understand
5275:Every join-pattern in the set must conform to the
8620:. New York: Association for Computing Machinery.
8459:Hopf, J.; von Itzstein, G.; Stewart, al. (2002).
7562:. New York: Association for Computing Machinery.
4247:* asynchronous channels have types (`a Join.chan)
7962:Summer School, Caminha, Portugal, September 2000
5268:tuple and specifying all possible outputs in an
2457:// Will return value of x to caller of fragment1
7527:, Leuven Belgium: Katholiek Universiteit Leuven
2138:let A(n) | B() = P(n) and A(n) | C() = Q(n) ;;
2095:
390:
289:
257:
8749:Haller, Phillip; Odersky, Martin (June 2007).
534:Join-pattern in classic programming literature
27:Software design pattern for parallel computing
10064:
9504:
8859:
7253:Cédric, Fournet; Luc, Maranget (2006-08-15).
5257:Hume does not provide synchronous messaging.
312:for sending (a message), and a function name
8:
4103:This example demonstrates how to use joins.
85:
7979:Odersky, Martin (2000). "Functional Nets".
7747:
7745:
7743:
7741:
7739:
7737:
320:returns a value that was sent on a channel
10071:
10057:
10049:
9792:
9511:
9497:
9489:
8889:
8866:
8852:
8844:
8694:Practical Aspects of Declarative Languages
7340:Practical Aspects of Declarative Languages
84:
8701:
8497:
8439:
8437:
8435:
8373:
8317:
7988:
7707:
7476:
7439:
7393:
7347:
2521:// This code will execute in a new thread
2036: : It's execute in a concurrent way.
73:Learn how and when to remove this message
57:, without removing the technical details.
9702:Software development process/methodology
4232:(* def defines a Join-pattern set clause
2183:
7607:
254:j.When(a1).And(a2). ... .And(an).Do(d)
8751:"Actors that unify threads and events"
8277:Multi-Agent Systems and Applications V
7313:Multi-Agent Systems and Applications V
4114:adds new language features to support
3552:, etc. It's integrated in the project
2048: : It performs tasks in parallel.
1886:// Create j and init channels (elided)
1491:// Create j and init channels (elided)
1070:// Create j and init channels (elided)
601:// Create j and init channels (elided)
8444:Sulzmann, Martin; S. L. Lam, Edmund.
7421:Sulzmann, Martin; S. L. Lam, Edmund.
2689:. The features of this language are:
2397:Join Java is a language based on the
2113:To do this, it exists two Compilers:
203:. Its focus is on the execution of a
55:make it understandable to non-experts
7:
10023:
9717:Software verification and validation
9620:Component-based software engineering
2661:The closest related language is the
530:) using based on the Join-calculus.
246:to join/pair other channels and the
3060:, messages can match multiple joins
469:JoCaml, Funnel and Join Java – 2000
5213:(* let the last message show up *)
5033:(* coin, button: int -> unit *)
279:) must be an asynchronous channel.
25:
9697:Software configuration management
9564:Search-based software engineering
9549:Experimental software engineering
8755:Coordination Models and Languages
8482:Coordination Models and Languages
8465:. Hong Kong: IEEE. Archived from
8366:Coordination Models and Languages
8044:Benton, N.; Cardelli, L. (2004).
7981:Programming Languages and Systems
7615:Taral Dragon (October 25, 2009).
7386:Coordination Models and Languages
3824:This is a simple buffer example.
1979:Fundamental features and concepts
403:Class diagram of the Join pattern
10033:
10032:
10022:
8310:CONCUR 2004 - Concurrency Theory
8096:Singh, Satnam (6 January 2007).
7512:Singh, Satnam (6 January 2007).
7469:CONCUR 2004 - Concurrency Theory
3544:including all useful tools like
457:Distributed Join-Calculus – 1996
230:The join-pattern (or a chord in
34:
9364:Enterprise Integration Patterns
8736:"The Joins Concurrency Library"
8650:Advanced Functional Programming
8570:Hanus, Michael (January 2007).
8539:"Introduction to Polyphonic C#"
7888:Advanced Functional Programming
2268:Scheduler between join-patterns
10080:Types of programming languages
9544:Empirical software engineering
8244:CONCUR '96: Concurrency Theory
7855:CONCUR '96: Concurrency Theory
7286:CONCUR '96: Concurrency Theory
1:
8833:The Joins Concurrency Library
8573:The Joins Concurrency Library
7201:Other similar design patterns
5264:, listing all channels in an
4367:(* serve: drinks Join.chan *)
2181:to upgrade the join-pattern.
2165:Implementations and libraries
2058:Software transactional memory
10212:Programming paradigms navbox
9569:Site reliability engineering
8763:10.1007/978-3-540-72794-1_10
8712:10.1007/978-3-540-69611-7_17
8328:10.1007/978-3-540-28644-8_27
8285:10.1007/978-3-540-75254-7_30
7487:10.1007/978-3-540-28644-8_27
7358:10.1007/978-3-540-69611-7_17
7321:10.1007/978-3-540-75254-7_30
7255:"The Join-Calculus language"
3542:classes for the join pattern
3540:Yigong Liu has written some
2301:Yes : first/round robin
2274:Yes : first/round robin
9574:Social software engineering
9457:Portland Pattern Repository
8499:10.1007/978-3-642-13414-2_5
8384:10.1007/978-3-540-68265-3_9
7896:10.1007/978-3-540-44833-4_5
7404:10.1007/978-3-540-68265-3_9
7233:Joins (concurrency library)
6185:-- inputs (channel origins)
4430:(* refund: int Join.chan *)
4295:(* put: string Join.chan *)
2143:the completed model joint.
728:Dining philosophers problem
10251:
9712:Software quality assurance
3548:and synchronous channels,
445:as expressive as the full
210:This template is based on
10018:
8523:Liu, Yigong (2007–2009).
7929:10.1109/ASAMA.1999.805390
7840:"Compiling Join-Patterns"
7377:"Compiling Join-Patterns"
6457:Joins library (C# and VB)
2399:Java programming language
2024:, first-match scheduler).
1255:// allocate a Join object
425:belongs to the family of
195:. Compared to the use of
167:
137:
10235:Software design patterns
9868:Model-driven engineering
9667:Functional specification
9650:Software incompatibility
9559:Requirements engineering
9082:Event-based asynchronous
8875:Software design patterns
8803:MONSIEUR, Geert (2010),
8786:MONSIEUR, Geert (2010),
8252:10.1007/3-540-61604-7_67
7863:10.1007/3-540-61604-7_67
7521:MONSIEUR, Geert (2010),
7294:10.1007/3-540-61604-7_67
7046:
6702:
6463:
6333:
5303:
4166:
3936:
3837:
3753:
3558:
3428:
3219:
3063:
2954:
2699:
2545:
2488:
2415:
2136:
1811:
1377:
1141:
1004:
732:
547:
326:
252:
179:provides a way to write
9662:Enterprise architecture
8988:Chain of responsibility
8426:10.1145/1449955.1449770
8073:10.1145/2577080.2577082
7990:10.1007/3-540-46425-5_1
7820:10.1145/1449955.1449770
7793:10.1145/1449955.1449770
7766:10.1145/1449955.1449770
7718:10.1007/3-540-45699-6_6
7685:10.1145/1449955.1449770
7644:10.1145/1449955.1449770
7546:10.1145/1449955.1449770
7450:10.1007/3-540-45699-6_6
6236:-- outputs destinations
4160:is an extension of the
2052:Distributed programming
2022:a round-robin scheduler
463:distributed programming
371://function call pattern
101:distributed programming
9873:Round-trip engineering
9630:Backward compatibility
9625:Software compatibility
9127:Scheduled-task pattern
9077:Double-checked locking
8839:Join Calculus homepage
8614:Scalable Join Patterns
8210:Scalable Join Patterns
8180:Scalable Join Patterns
8147:Scalable Join Patterns
8117:Scalable Join Patterns
7556:Scalable Join Patterns
4126:Scalable Join Patterns
4118:(based on the earlier
4116:concurrent programming
2685:inspired extension to
2271:Yes : first match
2100:
2034:Concurrent programming
404:
397:
353://message send pattern
301:
294:
281:
10230:Distributed computing
10201:Programming languages
9692:Software architecture
9645:Forward compatibility
9478:Architectural pattern
9381:Christopher Alexander
6322:Concurrent Basic – CB
4406:"Refund %d"
1373:Reader-writer locking
987:// replace chopsticks
402:
299:
191:computer programs by
9990:Computer engineering
9687:Software archaeology
9677:Programming paradigm
9589:Software maintenance
9534:Computer programming
9520:Software engineering
9290:Dependency injection
9247:Inversion of control
9242:Data transfer object
9142:Thread-local storage
7842:. Le Chesnay France.
7379:. Le Chesnay France.
5248:dataflow programming
5224:Coffee Tea Refund 5
2479:Asynchronous methods
2046:Parallel programming
1279:// bind its channels
483:Polyphonic C# – 2002
433:Join-Calculus – 1993
97:concurrent computing
10010:Systems engineering
9995:Information science
9775:Service orientation
9727:Structured analysis
9635:Compatibility layer
9579:Software deployment
9295:Intercepting filter
8490:2010LNCS.6116...61P
8414:ACM SIGPLAN Notices
7808:ACM SIGPLAN Notices
7781:ACM SIGPLAN Notices
7754:ACM SIGPLAN Notices
7673:ACM SIGPLAN Notices
7632:ACM SIGPLAN Notices
7534:ACM SIGPLAN Notices
6155:"std_out"
5756:"Refund "
3399:perform_transaction
3189:perform_transaction
3058:Non-linear patterns
1967:// initially n free
1137:Producers/Consumers
220:concurrency pattern
87:
10000:Project management
9765:Object orientation
9732:Essential analysis
9640:Compatibility mode
9452:The Hillside Group
9237:Data access object
9087:Guarded suspension
9072:Binding properties
8675:"Concurrent Basic"
8576:. Vol. 4354.
7923:. pp. 22–29.
6176:-- dataflow wiring
6170:"std_in"
3032:commit_transaction
2534:Ordering modifiers
2304:Yes : random
2126:2005-10-01 at the
2071:Application domain
503:Scala Joins – 2007
405:
302:
144:Unified Parallel C
10190:Computer language
10177:
10176:
10046:
10045:
9973:
9972:
9914:Information model
9818:Incremental model
9672:Modeling language
9486:
9485:
9280:Business delegate
9212:Publish–subscribe
9046:
9045:
8772:978-3-540-72793-4
8721:978-3-540-69608-7
8627:978-1-4503-0940-0
8583:978-3-540-69608-7
8509:978-3-642-13413-5
8393:978-3-540-68264-6
8337:978-3-540-22940-7
8294:978-3-540-75253-0
8261:978-3-540-61604-7
8223:978-1-4503-0940-0
8193:978-1-4503-0940-0
8160:978-1-4503-0940-0
8130:978-1-4503-0940-0
8082:978-1-4503-2772-5
8000:978-3-540-67262-3
7905:978-3-540-40132-2
7872:978-3-540-61604-7
7727:978-3-540-44044-4
7700:Applied Semantics
7569:978-1-4503-0940-0
7496:978-3-540-22940-7
7459:978-3-540-44044-4
7432:Applied Semantics
7413:978-3-540-68264-6
7367:978-3-540-69608-7
7330:978-3-540-75253-0
7303:978-3-540-61604-7
5477:-- input channels
5286:clause specifies
4337:"Cofee"
3424:Synchronous calls
2554:SimpleJoinPattern
2390:
2389:
2298:Yes : random
2227:Patterns matching
1794:// initially free
1336:// register chord
1124:// initially free
417:π-calculus – 1992
386://synchronization
174:
173:
83:
82:
75:
16:(Redirected from
10242:
10216:
10210:
10205:
10199:
10194:
10188:
10073:
10066:
10059:
10050:
10036:
10035:
10026:
10025:
9985:Computer science
9793:
9707:Software quality
9599:Systems analysis
9594:Software testing
9513:
9506:
9499:
9490:
9285:Composite entity
9162:Front controller
8902:Abstract factory
8890:
8868:
8861:
8854:
8845:
8823:Concurrent Basic
8811:
8810:
8800:
8794:
8793:
8783:
8777:
8776:
8746:
8740:
8739:
8732:
8726:
8725:
8705:
8689:
8683:
8682:
8677:. Archived from
8671:
8665:
8660:
8654:
8653:
8647:
8638:
8632:
8631:
8619:
8608:
8602:
8601:
8594:
8588:
8587:
8567:
8561:
8560:
8555:. Archived from
8549:
8543:
8542:
8535:
8529:
8528:
8520:
8514:
8513:
8501:
8477:
8471:
8470:
8456:
8450:
8449:
8441:
8430:
8429:
8409:
8398:
8397:
8377:
8361:
8350:
8349:
8321:
8305:
8299:
8298:
8272:
8266:
8265:
8239:
8228:
8227:
8215:
8204:
8198:
8197:
8185:
8174:
8165:
8164:
8152:
8141:
8135:
8134:
8122:
8111:
8102:
8101:
8093:
8087:
8086:
8056:
8050:
8049:
8041:
8035:
8034:
8026:
8020:
8019:
8011:
8005:
8004:
7992:
7976:
7970:
7969:
7957:
7951:
7950:
7916:
7910:
7909:
7883:
7877:
7876:
7850:
7844:
7843:
7835:
7824:
7823:
7803:
7797:
7796:
7776:
7770:
7769:
7749:
7732:
7731:
7711:
7695:
7689:
7688:
7668:
7662:
7661:
7654:
7648:
7647:
7627:
7621:
7620:
7612:
7597:
7585:
7573:
7561:
7549:
7528:
7517:
7508:
7480:
7463:
7443:
7426:
7417:
7397:
7380:
7371:
7351:
7334:
7307:
7280:
7278:
7277:
7265:
7263:
7262:
7155:
7152:
7149:
7146:
7143:
7140:
7137:
7134:
7131:
7128:
7125:
7122:
7119:
7116:
7113:
7110:
7107:
7104:
7101:
7098:
7095:
7092:
7089:
7086:
7083:
7080:
7077:
7074:
7071:
7068:
7065:
7062:
7059:
7056:
7053:
7050:
7036:
7033:
7030:
7027:
7024:
7021:
7018:
7015:
7012:
7009:
7006:
7003:
7000:
6997:
6994:
6991:
6988:
6985:
6982:
6979:
6976:
6973:
6970:
6967:
6964:
6961:
6958:
6955:
6952:
6949:
6946:
6943:
6940:
6937:
6934:
6931:
6928:
6925:
6922:
6919:
6916:
6913:
6910:
6907:
6904:
6901:
6898:
6895:
6892:
6889:
6886:
6883:
6880:
6877:
6874:
6871:
6868:
6865:
6862:
6859:
6856:
6853:
6850:
6847:
6846:ReleaseExclusive
6844:
6841:
6838:
6835:
6832:
6829:
6826:
6823:
6822:ReleaseExclusive
6820:
6817:
6814:
6811:
6808:
6805:
6802:
6799:
6796:
6793:
6790:
6787:
6784:
6781:
6778:
6777:NullarySyncEvent
6775:
6772:
6769:
6766:
6763:
6760:
6757:
6756:NullarySyncEvent
6754:
6751:
6748:
6747:ReleaseExclusive
6745:
6742:
6739:
6736:
6733:
6730:
6727:
6724:
6721:
6718:
6715:
6712:
6709:
6708:ReaderWriterLock
6706:
6694:pattern matching
6680:
6677:
6674:
6671:
6668:
6665:
6662:
6659:
6656:
6653:
6650:
6647:
6644:
6641:
6638:
6635:
6632:
6629:
6626:
6623:
6620:
6617:
6614:
6611:
6608:
6605:
6602:
6599:
6596:
6593:
6590:
6587:
6584:
6581:
6578:
6575:
6572:
6569:
6566:
6563:
6560:
6557:
6554:
6551:
6548:
6545:
6542:
6539:
6536:
6533:
6530:
6527:
6524:
6521:
6518:
6515:
6512:
6509:
6506:
6503:
6500:
6497:
6494:
6491:
6488:
6485:
6482:
6479:
6476:
6473:
6470:
6467:
6449:
6446:
6443:
6440:
6437:
6434:
6431:
6428:
6425:
6422:
6418:
6415:
6412:
6409:
6406:
6403:
6400:
6397:
6394:
6391:
6388:
6385:
6382:
6379:
6376:
6373:
6370:
6367:
6364:
6361:
6358:
6355:
6352:
6349:
6346:
6343:
6340:
6337:
6312:
6309:
6306:
6303:
6300:
6297:
6294:
6291:
6288:
6285:
6282:
6279:
6276:
6273:
6270:
6267:
6264:
6261:
6258:
6255:
6252:
6249:
6246:
6243:
6240:
6237:
6234:
6231:
6228:
6225:
6222:
6219:
6216:
6213:
6210:
6207:
6204:
6201:
6198:
6195:
6192:
6189:
6186:
6183:
6180:
6177:
6174:
6171:
6168:
6165:
6162:
6159:
6156:
6153:
6150:
6147:
6144:
6141:
6138:
6135:
6132:
6129:
6126:
6123:
6120:
6117:
6114:
6111:
6108:
6105:
6102:
6099:
6096:
6093:
6090:
6087:
6084:
6081:
6078:
6075:
6072:
6069:
6066:
6063:
6060:
6057:
6054:
6051:
6048:
6045:
6042:
6039:
6036:
6033:
6030:
6027:
6024:
6021:
6018:
6015:
6012:
6009:
6006:
6003:
6000:
5997:
5994:
5991:
5988:
5985:
5982:
5979:
5976:
5973:
5970:
5967:
5964:
5961:
5958:
5955:
5952:
5949:
5946:
5943:
5940:
5937:
5934:
5931:
5928:
5925:
5922:
5919:
5916:
5913:
5910:
5907:
5904:
5901:
5898:
5895:
5892:
5889:
5886:
5883:
5880:
5877:
5874:
5871:
5868:
5865:
5862:
5859:
5856:
5853:
5850:
5847:
5844:
5841:
5838:
5835:
5832:
5829:
5826:
5823:
5820:
5817:
5814:
5811:
5808:
5805:
5802:
5799:
5796:
5793:
5790:
5787:
5784:
5781:
5778:
5775:
5772:
5769:
5766:
5763:
5760:
5757:
5754:
5751:
5748:
5745:
5742:
5739:
5736:
5733:
5730:
5727:
5724:
5721:
5718:
5715:
5712:
5709:
5706:
5703:
5700:
5697:
5694:
5691:
5688:
5685:
5682:
5679:
5676:
5673:
5670:
5667:
5664:
5661:
5658:
5655:
5652:
5649:
5646:
5643:
5640:
5637:
5634:
5631:
5628:
5625:
5622:
5619:
5616:
5613:
5610:
5607:
5604:
5601:
5598:
5595:
5592:
5589:
5586:
5583:
5580:
5577:
5574:
5571:
5568:
5565:
5562:
5559:
5556:
5553:
5550:
5547:
5544:
5541:
5538:
5535:
5532:
5529:
5526:
5525:-- named outputs
5523:
5520:
5517:
5514:
5511:
5508:
5505:
5502:
5499:
5496:
5493:
5490:
5487:
5484:
5481:
5478:
5475:
5472:
5469:
5466:
5463:
5460:
5457:
5454:
5451:
5448:
5445:
5442:
5439:
5436:
5433:
5430:
5427:
5424:
5421:
5418:
5415:
5412:
5409:
5406:
5403:
5400:
5397:
5394:
5391:
5388:
5385:
5382:
5379:
5376:
5373:
5370:
5367:
5364:
5361:
5358:
5355:
5352:
5349:
5346:
5343:
5340:
5337:
5334:
5331:
5328:
5325:
5322:
5319:
5316:
5313:
5310:
5307:
5217:
5214:
5211:
5208:
5205:
5202:
5199:
5196:
5193:
5190:
5187:
5184:
5181:
5178:
5175:
5172:
5169:
5166:
5163:
5160:
5157:
5154:
5151:
5148:
5145:
5142:
5139:
5136:
5133:
5130:
5127:
5124:
5121:
5118:
5115:
5112:
5109:
5106:
5103:
5100:
5097:
5094:
5091:
5088:
5085:
5082:
5079:
5076:
5073:
5070:
5067:
5064:
5061:
5058:
5055:
5052:
5049:
5046:
5043:
5040:
5037:
5034:
5031:
5028:
5025:
5022:
5019:
5016:
5013:
5010:
5007:
5004:
5001:
4998:
4995:
4992:
4989:
4986:
4983:
4980:
4977:
4974:
4971:
4968:
4965:
4962:
4959:
4956:
4953:
4950:
4947:
4944:
4941:
4938:
4935:
4932:
4929:
4926:
4923:
4920:
4917:
4914:
4911:
4908:
4905:
4902:
4899:
4896:
4893:
4890:
4887:
4884:
4881:
4878:
4875:
4872:
4869:
4866:
4863:
4860:
4857:
4854:
4851:
4848:
4845:
4842:
4839:
4836:
4833:
4830:
4827:
4824:
4821:
4818:
4815:
4812:
4809:
4806:
4803:
4800:
4797:
4794:
4791:
4788:
4785:
4782:
4779:
4776:
4773:
4770:
4767:
4764:
4761:
4758:
4755:
4752:
4749:
4746:
4743:
4740:
4737:
4734:
4731:
4728:
4725:
4722:
4719:
4716:
4713:
4710:
4707:
4704:
4701:
4698:
4695:
4692:
4689:
4686:
4683:
4680:
4677:
4674:
4671:
4668:
4665:
4662:
4659:
4656:
4653:
4650:
4647:
4644:
4641:
4638:
4635:
4632:
4629:
4626:
4623:
4620:
4617:
4614:
4611:
4608:
4605:
4602:
4599:
4596:
4593:
4590:
4587:
4584:
4581:
4578:
4575:
4572:
4569:
4566:
4563:
4560:
4557:
4554:
4551:
4548:
4545:
4542:
4539:
4536:
4533:
4530:
4527:
4524:
4521:
4518:
4515:
4512:
4509:
4506:
4503:
4500:
4497:
4494:
4491:
4488:
4485:
4482:
4479:
4476:
4473:
4470:
4467:
4464:
4461:
4458:
4455:
4452:
4449:
4446:
4443:
4440:
4437:
4434:
4431:
4428:
4425:
4422:
4419:
4416:
4413:
4410:
4407:
4404:
4401:
4398:
4395:
4392:
4389:
4386:
4383:
4380:
4377:
4374:
4371:
4368:
4365:
4362:
4359:
4356:
4353:
4350:
4347:
4344:
4341:
4338:
4335:
4332:
4329:
4326:
4323:
4320:
4317:
4314:
4311:
4308:
4305:
4302:
4299:
4296:
4293:
4290:
4287:
4284:
4281:
4278:
4275:
4272:
4269:
4266:
4263:
4260:
4257:
4254:
4251:
4248:
4245:
4242:
4239:
4236:
4233:
4230:
4227:
4224:
4221:
4218:
4215:
4212:
4209:
4206:
4203:
4200:
4197:
4194:
4191:
4188:
4185:
4182:
4179:
4176:
4173:
4170:
4132:compare-and-swap
4099:
4096:
4093:
4090:
4087:
4084:
4081:
4078:
4075:
4072:
4069:
4066:
4063:
4060:
4057:
4054:
4051:
4048:
4045:
4042:
4039:
4036:
4033:
4030:
4027:
4024:
4021:
4018:
4015:
4012:
4009:
4006:
4003:
4000:
3997:
3994:
3991:
3988:
3985:
3982:
3979:
3976:
3973:
3970:
3967:
3964:
3961:
3958:
3955:
3952:
3949:
3946:
3943:
3940:
3919:
3916:
3913:
3910:
3907:
3904:
3901:
3898:
3895:
3892:
3889:
3886:
3883:
3880:
3877:
3874:
3871:
3868:
3865:
3862:
3859:
3856:
3853:
3850:
3847:
3844:
3841:
3820:
3817:
3814:
3811:
3808:
3805:
3802:
3799:
3796:
3793:
3790:
3787:
3784:
3781:
3778:
3775:
3772:
3769:
3766:
3763:
3760:
3757:
3730:
3727:
3724:
3721:
3718:
3715:
3712:
3709:
3706:
3703:
3700:
3697:
3694:
3691:
3688:
3685:
3682:
3679:
3676:
3673:
3670:
3667:
3664:
3661:
3658:
3655:
3652:
3649:
3646:
3643:
3640:
3637:
3634:
3631:
3628:
3625:
3622:
3619:
3616:
3613:
3610:
3607:
3604:
3601:
3598:
3595:
3592:
3589:
3586:
3583:
3580:
3577:
3574:
3571:
3568:
3565:
3562:
3531:
3528:
3525:
3522:
3519:
3516:
3513:
3510:
3507:
3504:
3501:
3498:
3495:
3492:
3489:
3486:
3483:
3480:
3477:
3474:
3471:
3468:
3465:
3462:
3459:
3456:
3453:
3450:
3447:
3444:
3441:
3438:
3435:
3432:
3418:
3415:
3412:
3409:
3406:
3403:
3400:
3397:
3394:
3391:
3388:
3385:
3382:
3379:
3376:
3373:
3370:
3367:
3364:
3361:
3358:
3355:
3352:
3349:
3346:
3343:
3340:
3337:
3334:
3331:
3328:
3325:
3322:
3319:
3316:
3313:
3310:
3307:
3304:
3301:
3298:
3295:
3292:
3289:
3286:
3283:
3280:
3277:
3274:
3271:
3268:
3265:
3262:
3259:
3256:
3253:
3250:
3247:
3244:
3241:
3238:
3235:
3232:
3229:
3226:
3223:
3208:
3205:
3202:
3199:
3196:
3193:
3190:
3187:
3184:
3181:
3178:
3175:
3172:
3169:
3166:
3163:
3160:
3157:
3154:
3151:
3148:
3145:
3142:
3139:
3136:
3133:
3130:
3127:
3124:
3121:
3118:
3115:
3112:
3109:
3106:
3103:
3100:
3097:
3094:
3091:
3088:
3085:
3082:
3079:
3076:
3073:
3070:
3067:
3051:
3048:
3045:
3042:
3039:
3036:
3033:
3030:
3027:
3024:
3021:
3018:
3015:
3012:
3009:
3006:
3003:
3000:
2997:
2994:
2991:
2988:
2985:
2982:
2979:
2976:
2973:
2970:
2967:
2964:
2961:
2958:
2943:
2940:
2937:
2934:
2931:
2928:
2925:
2922:
2919:
2916:
2913:
2910:
2907:
2904:
2901:
2898:
2895:
2892:
2889:
2886:
2883:
2880:
2877:
2874:
2871:
2868:
2865:
2862:
2859:
2856:
2853:
2850:
2847:
2844:
2841:
2838:
2835:
2832:
2829:
2826:
2823:
2820:
2817:
2814:
2811:
2808:
2805:
2802:
2799:
2796:
2793:
2790:
2787:
2784:
2781:
2778:
2775:
2772:
2769:
2766:
2763:
2760:
2757:
2754:
2751:
2748:
2745:
2742:
2739:
2736:
2733:
2730:
2727:
2724:
2721:
2718:
2715:
2712:
2709:
2706:
2703:
2657:
2654:
2651:
2648:
2645:
2642:
2639:
2636:
2633:
2630:
2627:
2624:
2621:
2618:
2615:
2612:
2609:
2606:
2603:
2600:
2597:
2594:
2591:
2588:
2585:
2582:
2579:
2576:
2573:
2570:
2567:
2564:
2561:
2558:
2555:
2552:
2549:
2528:
2525:
2522:
2519:
2516:
2513:
2510:
2507:
2504:
2501:
2498:
2495:
2492:
2473:
2470:
2467:
2464:
2461:
2458:
2455:
2452:
2449:
2446:
2443:
2440:
2437:
2434:
2431:
2428:
2425:
2422:
2419:
2184:
2040:Pattern matching
1974:
1971:
1968:
1965:
1962:
1959:
1956:
1953:
1950:
1947:
1944:
1941:
1938:
1935:
1932:
1929:
1926:
1923:
1920:
1917:
1914:
1911:
1908:
1905:
1902:
1899:
1896:
1893:
1890:
1887:
1884:
1881:
1878:
1875:
1872:
1869:
1866:
1863:
1860:
1857:
1854:
1851:
1848:
1845:
1842:
1839:
1836:
1833:
1830:
1827:
1824:
1821:
1818:
1815:
1801:
1798:
1795:
1792:
1789:
1786:
1783:
1780:
1777:
1774:
1771:
1768:
1765:
1762:
1759:
1756:
1753:
1750:
1747:
1744:
1741:
1738:
1735:
1732:
1729:
1726:
1723:
1720:
1717:
1714:
1711:
1708:
1705:
1702:
1699:
1696:
1693:
1690:
1687:
1684:
1681:
1678:
1675:
1672:
1669:
1666:
1663:
1660:
1657:
1654:
1651:
1648:
1645:
1642:
1639:
1636:
1633:
1630:
1627:
1624:
1621:
1618:
1615:
1612:
1609:
1606:
1603:
1600:
1597:
1594:
1591:
1588:
1585:
1582:
1579:
1576:
1573:
1570:
1567:
1564:
1561:
1558:
1555:
1552:
1549:
1546:
1543:
1540:
1537:
1534:
1531:
1528:
1525:
1522:
1519:
1516:
1513:
1510:
1507:
1504:
1501:
1498:
1495:
1492:
1489:
1486:
1483:
1482:ReaderWriterLock
1480:
1477:
1474:
1471:
1468:
1465:
1462:
1459:
1456:
1453:
1450:
1447:
1444:
1441:
1438:
1435:
1432:
1429:
1426:
1423:
1420:
1417:
1414:
1411:
1408:
1405:
1402:
1399:
1396:
1393:
1390:
1387:
1384:
1383:ReaderWriterLock
1381:
1367:
1364:
1361:
1358:
1355:
1352:
1349:
1346:
1343:
1340:
1337:
1334:
1331:
1328:
1325:
1322:
1319:
1316:
1313:
1310:
1307:
1304:
1301:
1298:
1295:
1292:
1289:
1286:
1283:
1280:
1277:
1274:
1271:
1268:
1265:
1262:
1259:
1256:
1253:
1250:
1247:
1244:
1241:
1238:
1235:
1232:
1229:
1226:
1223:
1220:
1217:
1214:
1211:
1208:
1205:
1202:
1199:
1196:
1193:
1190:
1187:
1184:
1181:
1178:
1175:
1172:
1169:
1166:
1163:
1160:
1157:
1154:
1151:
1148:
1145:
1131:
1128:
1125:
1122:
1119:
1116:
1113:
1110:
1107:
1104:
1101:
1098:
1095:
1092:
1089:
1086:
1083:
1080:
1077:
1074:
1071:
1068:
1065:
1062:
1059:
1056:
1053:
1050:
1047:
1044:
1041:
1038:
1035:
1032:
1029:
1026:
1023:
1020:
1017:
1014:
1011:
1008:
1000:Mutual exclusion
994:
991:
988:
985:
982:
979:
976:
973:
970:
967:
964:
961:
958:
955:
952:
949:
946:
943:
940:
937:
934:
931:
928:
925:
922:
919:
916:
913:
910:
907:
904:
901:
898:
895:
892:
889:
886:
883:
880:
877:
874:
871:
868:
865:
862:
859:
856:
853:
850:
847:
844:
841:
838:
835:
832:
829:
826:
823:
820:
817:
814:
811:
808:
805:
802:
799:
796:
793:
790:
787:
784:
781:
778:
775:
772:
769:
766:
763:
760:
757:
754:
751:
748:
745:
742:
739:
736:
722:
719:
716:
713:
710:
707:
704:
701:
698:
695:
692:
689:
686:
683:
680:
677:
674:
671:
668:
665:
662:
659:
656:
653:
650:
647:
644:
641:
638:
635:
632:
629:
626:
623:
620:
617:
614:
611:
608:
605:
602:
599:
596:
593:
590:
587:
584:
583:SymmetricBarrier
581:
578:
575:
572:
569:
566:
563:
560:
557:
554:
553:SymmetricBarrier
551:
453:communications.
443:process calculus
387:
384:
381:
378:
375:
372:
369:
366:
363:
360:
357:
354:
351:
348:
345:
342:
339:
336:
333:
330:
323:
319:
315:
311:
307:
278:
274:
270:
266:
262:
249:
245:
241:
216:pattern matching
88:
78:
71:
67:
64:
58:
38:
37:
30:
21:
10250:
10249:
10245:
10244:
10243:
10241:
10240:
10239:
10220:
10219:
10214:
10208:
10203:
10197:
10192:
10186:
10183:
10178:
10173:
10135:
10126:Very high-level
10082:
10077:
10047:
10042:
10014:
10005:Risk management
9969:
9938:
9877:
9858:Waterfall model
9828:Prototype model
9823:Iterative model
9784:
9760:Aspect-oriented
9743:
9722:Software system
9603:
9584:Software design
9522:
9517:
9487:
9482:
9461:
9440:
9431:Douglas Schmidt
9411:Ward Cunningham
9369:
9357:Design Patterns
9344:
9335:Method chaining
9267:
9261:
9222:Service locator
9153:
9146:
9117:Read–write lock
9053:
9042:
9033:Template method
8974:
8926:
8884:
8877:
8872:
8819:
8814:
8802:
8801:
8797:
8785:
8784:
8780:
8773:
8748:
8747:
8743:
8734:
8733:
8729:
8722:
8703:10.1.1.187.8792
8691:
8690:
8686:
8673:
8672:
8668:
8661:
8657:
8645:
8640:
8639:
8635:
8628:
8617:
8610:
8609:
8605:
8596:
8595:
8591:
8584:
8569:
8568:
8564:
8551:
8550:
8546:
8537:
8536:
8532:
8522:
8521:
8517:
8510:
8479:
8478:
8474:
8458:
8457:
8453:
8443:
8442:
8433:
8411:
8410:
8401:
8394:
8375:10.1.1.210.1242
8363:
8362:
8353:
8338:
8319:10.1.1.499.8443
8307:
8306:
8302:
8295:
8274:
8273:
8269:
8262:
8241:
8240:
8231:
8224:
8213:
8206:
8205:
8201:
8194:
8183:
8176:
8175:
8168:
8161:
8150:
8143:
8142:
8138:
8131:
8120:
8113:
8112:
8105:
8095:
8094:
8090:
8083:
8058:
8057:
8053:
8048:. Vol. 26.
8043:
8042:
8038:
8028:
8027:
8023:
8013:
8012:
8008:
8001:
7978:
7977:
7973:
7959:
7958:
7954:
7939:
7918:
7917:
7913:
7906:
7885:
7884:
7880:
7873:
7852:
7851:
7847:
7837:
7836:
7827:
7805:
7804:
7800:
7778:
7777:
7773:
7751:
7750:
7735:
7728:
7697:
7696:
7692:
7670:
7669:
7665:
7656:
7655:
7651:
7629:
7628:
7624:
7617:"Join Calculus"
7614:
7613:
7609:
7605:
7600:
7594:
7586:. CSREA Press.
7583:
7576:
7570:
7559:
7552:
7531:
7520:
7511:
7497:
7478:10.1.1.499.8443
7466:
7460:
7429:
7420:
7414:
7395:10.1.1.210.1242
7383:
7374:
7368:
7349:10.1.1.187.8792
7337:
7331:
7310:
7304:
7283:
7275:
7273:
7268:
7260:
7258:
7252:
7248:
7229:
7214:Split pattern (
7203:
7195:
7187:
7176:
7157:
7156:
7153:
7150:
7147:
7144:
7141:
7138:
7135:
7132:
7129:
7126:
7123:
7120:
7117:
7114:
7111:
7108:
7105:
7102:
7099:
7096:
7093:
7090:
7087:
7084:
7081:
7078:
7075:
7072:
7069:
7066:
7063:
7060:
7057:
7054:
7051:
7048:
7038:
7037:
7034:
7031:
7028:
7025:
7022:
7019:
7016:
7013:
7010:
7007:
7004:
7001:
6998:
6995:
6992:
6989:
6986:
6983:
6980:
6977:
6974:
6971:
6968:
6965:
6962:
6959:
6956:
6953:
6950:
6947:
6944:
6941:
6938:
6935:
6932:
6929:
6926:
6923:
6920:
6917:
6914:
6911:
6908:
6905:
6902:
6899:
6896:
6893:
6890:
6887:
6884:
6881:
6878:
6875:
6872:
6869:
6866:
6863:
6860:
6857:
6854:
6851:
6848:
6845:
6842:
6839:
6836:
6833:
6830:
6827:
6824:
6821:
6818:
6815:
6812:
6809:
6806:
6803:
6800:
6797:
6794:
6791:
6788:
6785:
6782:
6779:
6776:
6773:
6770:
6767:
6764:
6761:
6758:
6755:
6752:
6749:
6746:
6743:
6740:
6737:
6734:
6731:
6728:
6725:
6722:
6719:
6716:
6713:
6710:
6707:
6704:
6690:
6682:
6681:
6678:
6675:
6672:
6669:
6666:
6663:
6660:
6657:
6654:
6651:
6648:
6645:
6642:
6639:
6636:
6633:
6630:
6627:
6624:
6621:
6618:
6615:
6612:
6609:
6606:
6603:
6600:
6597:
6594:
6591:
6588:
6585:
6582:
6579:
6576:
6573:
6570:
6567:
6564:
6561:
6558:
6555:
6552:
6549:
6546:
6543:
6540:
6537:
6534:
6531:
6528:
6525:
6522:
6519:
6516:
6513:
6510:
6507:
6504:
6501:
6498:
6495:
6492:
6489:
6486:
6483:
6480:
6477:
6474:
6471:
6468:
6465:
6459:
6451:
6450:
6447:
6444:
6441:
6438:
6435:
6432:
6429:
6426:
6423:
6420:
6416:
6413:
6410:
6407:
6404:
6401:
6398:
6395:
6392:
6389:
6386:
6383:
6380:
6377:
6374:
6371:
6368:
6365:
6362:
6359:
6356:
6353:
6350:
6347:
6344:
6341:
6338:
6335:
6324:
6319:
6314:
6313:
6310:
6307:
6304:
6301:
6298:
6295:
6292:
6289:
6286:
6283:
6280:
6277:
6274:
6271:
6268:
6265:
6262:
6259:
6256:
6253:
6250:
6247:
6244:
6241:
6238:
6235:
6232:
6229:
6226:
6223:
6220:
6217:
6214:
6211:
6208:
6205:
6202:
6199:
6196:
6193:
6190:
6187:
6184:
6181:
6178:
6175:
6172:
6169:
6166:
6163:
6160:
6157:
6154:
6151:
6148:
6145:
6142:
6139:
6136:
6133:
6130:
6127:
6124:
6121:
6118:
6115:
6112:
6109:
6106:
6103:
6100:
6097:
6094:
6091:
6088:
6085:
6082:
6079:
6076:
6073:
6070:
6067:
6064:
6061:
6058:
6055:
6052:
6049:
6046:
6043:
6040:
6037:
6034:
6031:
6028:
6025:
6022:
6019:
6016:
6013:
6010:
6007:
6004:
6001:
5998:
5995:
5992:
5989:
5986:
5983:
5980:
5977:
5974:
5971:
5968:
5965:
5962:
5959:
5956:
5953:
5950:
5947:
5944:
5941:
5938:
5935:
5932:
5929:
5926:
5923:
5920:
5917:
5914:
5911:
5908:
5905:
5902:
5899:
5896:
5893:
5890:
5887:
5884:
5881:
5878:
5875:
5872:
5869:
5866:
5863:
5860:
5857:
5854:
5851:
5848:
5845:
5842:
5839:
5836:
5833:
5830:
5827:
5824:
5821:
5818:
5815:
5812:
5809:
5806:
5803:
5800:
5797:
5794:
5791:
5788:
5785:
5782:
5779:
5776:
5773:
5770:
5767:
5764:
5761:
5758:
5755:
5752:
5749:
5746:
5743:
5740:
5737:
5734:
5731:
5728:
5725:
5722:
5719:
5716:
5713:
5710:
5707:
5704:
5701:
5698:
5695:
5692:
5689:
5686:
5683:
5680:
5677:
5674:
5671:
5668:
5665:
5662:
5659:
5656:
5653:
5650:
5647:
5644:
5641:
5638:
5635:
5632:
5629:
5626:
5623:
5620:
5617:
5614:
5611:
5608:
5605:
5602:
5599:
5596:
5593:
5590:
5587:
5584:
5581:
5578:
5575:
5572:
5569:
5566:
5563:
5560:
5557:
5554:
5551:
5548:
5545:
5542:
5539:
5536:
5533:
5530:
5527:
5524:
5521:
5518:
5515:
5512:
5509:
5506:
5503:
5500:
5497:
5494:
5491:
5488:
5485:
5482:
5479:
5476:
5473:
5470:
5467:
5464:
5461:
5458:
5455:
5452:
5449:
5446:
5443:
5440:
5437:
5434:
5431:
5428:
5425:
5422:
5419:
5416:
5413:
5410:
5407:
5404:
5401:
5398:
5395:
5392:
5389:
5386:
5383:
5380:
5377:
5374:
5371:
5368:
5365:
5362:
5359:
5356:
5353:
5350:
5347:
5344:
5341:
5338:
5335:
5332:
5329:
5326:
5323:
5320:
5317:
5314:
5311:
5308:
5305:
5230:
5225:
5219:
5218:
5215:
5212:
5209:
5206:
5203:
5200:
5197:
5194:
5191:
5188:
5185:
5182:
5179:
5176:
5173:
5170:
5167:
5164:
5161:
5158:
5155:
5152:
5149:
5146:
5143:
5140:
5137:
5134:
5131:
5128:
5125:
5122:
5119:
5116:
5113:
5110:
5107:
5104:
5101:
5098:
5095:
5092:
5089:
5086:
5083:
5080:
5077:
5074:
5071:
5068:
5065:
5062:
5059:
5056:
5053:
5050:
5047:
5044:
5041:
5038:
5035:
5032:
5029:
5026:
5023:
5020:
5017:
5014:
5011:
5008:
5005:
5002:
4999:
4996:
4993:
4990:
4987:
4984:
4981:
4978:
4975:
4972:
4969:
4966:
4963:
4960:
4957:
4954:
4951:
4948:
4945:
4942:
4939:
4936:
4933:
4930:
4927:
4924:
4921:
4918:
4915:
4912:
4909:
4906:
4903:
4900:
4897:
4894:
4891:
4888:
4885:
4882:
4879:
4876:
4873:
4870:
4867:
4864:
4861:
4858:
4855:
4852:
4849:
4846:
4843:
4840:
4837:
4834:
4831:
4828:
4825:
4822:
4819:
4816:
4813:
4810:
4807:
4804:
4801:
4798:
4795:
4792:
4789:
4786:
4783:
4780:
4777:
4774:
4771:
4768:
4765:
4762:
4759:
4756:
4753:
4750:
4747:
4744:
4741:
4738:
4735:
4732:
4729:
4726:
4723:
4720:
4717:
4714:
4711:
4708:
4705:
4702:
4699:
4696:
4693:
4690:
4687:
4684:
4681:
4678:
4675:
4672:
4669:
4666:
4663:
4660:
4657:
4654:
4651:
4648:
4645:
4642:
4639:
4636:
4633:
4630:
4627:
4624:
4621:
4618:
4615:
4612:
4609:
4606:
4603:
4600:
4597:
4594:
4591:
4588:
4585:
4582:
4579:
4576:
4573:
4570:
4567:
4564:
4561:
4558:
4555:
4552:
4549:
4546:
4543:
4540:
4537:
4534:
4531:
4528:
4525:
4522:
4519:
4516:
4513:
4510:
4507:
4504:
4501:
4498:
4495:
4492:
4489:
4486:
4483:
4480:
4477:
4474:
4471:
4468:
4465:
4462:
4459:
4456:
4453:
4450:
4447:
4444:
4441:
4438:
4435:
4432:
4429:
4426:
4423:
4420:
4417:
4414:
4411:
4408:
4405:
4402:
4399:
4396:
4393:
4390:
4387:
4384:
4381:
4378:
4375:
4372:
4369:
4366:
4363:
4360:
4358:"Tea"
4357:
4354:
4351:
4348:
4345:
4342:
4339:
4336:
4333:
4330:
4327:
4324:
4321:
4318:
4315:
4312:
4309:
4306:
4303:
4300:
4297:
4294:
4291:
4288:
4285:
4282:
4279:
4276:
4273:
4270:
4267:
4264:
4261:
4258:
4255:
4252:
4249:
4246:
4243:
4240:
4237:
4234:
4231:
4228:
4225:
4222:
4219:
4216:
4213:
4210:
4207:
4204:
4201:
4198:
4195:
4192:
4189:
4186:
4183:
4180:
4177:
4174:
4171:
4168:
4158:JoCaml language
4151:
4128:
4109:
4101:
4100:
4097:
4094:
4091:
4088:
4085:
4082:
4079:
4076:
4073:
4070:
4067:
4064:
4061:
4058:
4055:
4052:
4049:
4046:
4043:
4040:
4037:
4034:
4031:
4028:
4025:
4022:
4019:
4016:
4013:
4010:
4007:
4004:
4001:
3998:
3995:
3992:
3989:
3986:
3983:
3980:
3977:
3974:
3971:
3968:
3965:
3962:
3959:
3956:
3953:
3950:
3947:
3944:
3941:
3938:
3929:
3921:
3920:
3917:
3914:
3911:
3908:
3905:
3902:
3899:
3896:
3893:
3890:
3887:
3884:
3881:
3878:
3875:
3872:
3869:
3866:
3863:
3860:
3857:
3854:
3851:
3848:
3845:
3842:
3839:
3830:
3822:
3821:
3818:
3815:
3812:
3809:
3806:
3803:
3800:
3797:
3794:
3791:
3788:
3785:
3782:
3779:
3776:
3773:
3770:
3767:
3764:
3761:
3758:
3755:
3745:
3740:
3732:
3731:
3728:
3725:
3722:
3719:
3716:
3713:
3710:
3707:
3704:
3701:
3698:
3695:
3692:
3689:
3686:
3683:
3680:
3677:
3674:
3671:
3668:
3665:
3662:
3659:
3656:
3653:
3650:
3647:
3644:
3641:
3638:
3635:
3632:
3629:
3626:
3623:
3620:
3617:
3614:
3611:
3608:
3605:
3602:
3599:
3596:
3593:
3590:
3587:
3584:
3581:
3578:
3575:
3572:
3569:
3566:
3563:
3560:
3538:
3533:
3532:
3529:
3526:
3523:
3520:
3517:
3514:
3511:
3508:
3505:
3502:
3499:
3496:
3493:
3490:
3487:
3484:
3481:
3478:
3475:
3472:
3469:
3466:
3463:
3460:
3457:
3454:
3451:
3448:
3445:
3442:
3439:
3436:
3433:
3430:
3420:
3419:
3416:
3413:
3410:
3407:
3404:
3401:
3398:
3395:
3392:
3389:
3386:
3383:
3380:
3377:
3374:
3371:
3368:
3365:
3362:
3359:
3356:
3353:
3350:
3347:
3344:
3341:
3338:
3335:
3332:
3329:
3326:
3323:
3320:
3317:
3314:
3311:
3308:
3305:
3302:
3299:
3296:
3293:
3290:
3287:
3284:
3281:
3278:
3275:
3272:
3269:
3266:
3263:
3260:
3257:
3254:
3251:
3248:
3245:
3242:
3239:
3236:
3233:
3230:
3227:
3224:
3221:
3210:
3209:
3206:
3203:
3200:
3197:
3194:
3191:
3188:
3185:
3182:
3179:
3176:
3173:
3170:
3167:
3164:
3161:
3158:
3155:
3152:
3149:
3146:
3143:
3140:
3137:
3134:
3131:
3128:
3125:
3122:
3119:
3116:
3113:
3110:
3107:
3104:
3101:
3098:
3095:
3092:
3089:
3086:
3083:
3080:
3077:
3074:
3071:
3068:
3065:
3053:
3052:
3049:
3046:
3043:
3040:
3037:
3034:
3031:
3028:
3025:
3022:
3019:
3016:
3013:
3010:
3007:
3004:
3001:
2998:
2995:
2992:
2989:
2986:
2983:
2980:
2977:
2974:
2971:
2968:
2965:
2962:
2959:
2956:
2945:
2944:
2941:
2938:
2935:
2932:
2929:
2926:
2923:
2920:
2917:
2914:
2911:
2908:
2905:
2902:
2899:
2896:
2893:
2890:
2887:
2884:
2881:
2878:
2875:
2872:
2869:
2866:
2863:
2860:
2857:
2854:
2851:
2848:
2845:
2842:
2839:
2836:
2833:
2830:
2827:
2824:
2821:
2818:
2815:
2812:
2809:
2806:
2803:
2800:
2797:
2794:
2791:
2788:
2785:
2782:
2779:
2776:
2773:
2770:
2767:
2764:
2761:
2758:
2755:
2752:
2749:
2746:
2743:
2740:
2737:
2734:
2731:
2728:
2725:
2722:
2719:
2716:
2713:
2710:
2707:
2704:
2701:
2671:
2659:
2658:
2655:
2652:
2649:
2646:
2643:
2640:
2637:
2634:
2631:
2628:
2625:
2622:
2619:
2616:
2613:
2610:
2607:
2604:
2601:
2598:
2595:
2592:
2589:
2586:
2583:
2580:
2577:
2574:
2571:
2568:
2565:
2562:
2559:
2556:
2553:
2550:
2547:
2530:
2529:
2526:
2523:
2520:
2517:
2514:
2511:
2508:
2505:
2502:
2499:
2496:
2493:
2490:
2475:
2474:
2471:
2468:
2465:
2462:
2459:
2456:
2453:
2450:
2447:
2444:
2441:
2438:
2435:
2432:
2429:
2426:
2423:
2420:
2417:
2395:
2167:
2151:
2149:
2147:
2140:
2139:
2128:Wayback Machine
2121:Jocaml Compiler
2112:
2109:
2078:
2073:
2028:Design patterns
1991:Message passing
1981:
1976:
1975:
1972:
1969:
1966:
1963:
1960:
1957:
1954:
1951:
1948:
1945:
1942:
1939:
1936:
1933:
1930:
1927:
1924:
1921:
1918:
1915:
1912:
1909:
1906:
1903:
1900:
1897:
1894:
1891:
1888:
1885:
1882:
1879:
1876:
1873:
1870:
1867:
1864:
1861:
1858:
1855:
1852:
1849:
1846:
1843:
1840:
1837:
1834:
1831:
1828:
1825:
1822:
1819:
1816:
1813:
1803:
1802:
1799:
1796:
1793:
1790:
1787:
1784:
1781:
1778:
1775:
1772:
1769:
1766:
1763:
1760:
1757:
1754:
1751:
1748:
1745:
1742:
1739:
1736:
1733:
1730:
1727:
1724:
1721:
1718:
1715:
1712:
1709:
1706:
1703:
1700:
1697:
1694:
1691:
1688:
1685:
1682:
1679:
1676:
1673:
1670:
1667:
1664:
1661:
1658:
1655:
1652:
1649:
1646:
1643:
1640:
1637:
1634:
1631:
1628:
1625:
1622:
1619:
1616:
1613:
1610:
1607:
1604:
1601:
1598:
1595:
1592:
1589:
1586:
1583:
1580:
1577:
1574:
1571:
1568:
1565:
1562:
1559:
1556:
1553:
1550:
1547:
1544:
1541:
1538:
1535:
1532:
1529:
1526:
1523:
1520:
1517:
1514:
1511:
1508:
1505:
1502:
1499:
1496:
1493:
1490:
1487:
1484:
1481:
1478:
1475:
1472:
1469:
1466:
1463:
1460:
1457:
1454:
1451:
1448:
1445:
1442:
1439:
1436:
1433:
1430:
1427:
1424:
1421:
1418:
1415:
1412:
1409:
1406:
1403:
1400:
1397:
1394:
1391:
1388:
1385:
1382:
1379:
1369:
1368:
1365:
1362:
1359:
1356:
1353:
1350:
1347:
1344:
1341:
1338:
1335:
1332:
1329:
1326:
1323:
1320:
1317:
1314:
1311:
1308:
1305:
1302:
1299:
1296:
1293:
1290:
1287:
1284:
1281:
1278:
1275:
1272:
1269:
1266:
1263:
1260:
1257:
1254:
1251:
1248:
1245:
1242:
1239:
1236:
1233:
1230:
1227:
1224:
1221:
1218:
1215:
1212:
1209:
1206:
1203:
1200:
1197:
1194:
1191:
1188:
1185:
1182:
1179:
1176:
1173:
1170:
1167:
1164:
1161:
1158:
1155:
1152:
1149:
1146:
1143:
1133:
1132:
1129:
1126:
1123:
1120:
1117:
1114:
1111:
1108:
1105:
1102:
1099:
1096:
1093:
1090:
1087:
1084:
1081:
1078:
1075:
1072:
1069:
1066:
1063:
1060:
1057:
1054:
1051:
1048:
1045:
1042:
1039:
1036:
1033:
1030:
1027:
1024:
1021:
1018:
1015:
1012:
1009:
1006:
996:
995:
992:
989:
986:
983:
980:
977:
974:
971:
968:
965:
962:
959:
956:
953:
950:
947:
944:
941:
938:
935:
932:
929:
926:
923:
920:
917:
914:
911:
908:
905:
902:
899:
896:
893:
890:
887:
884:
881:
878:
875:
872:
869:
866:
863:
860:
857:
854:
851:
848:
845:
842:
839:
836:
833:
830:
827:
824:
821:
818:
815:
812:
809:
806:
803:
800:
797:
794:
791:
788:
785:
782:
779:
776:
773:
770:
767:
764:
761:
758:
755:
752:
749:
746:
743:
740:
737:
734:
724:
723:
720:
717:
714:
711:
708:
705:
702:
699:
696:
693:
690:
687:
684:
681:
678:
675:
672:
669:
666:
663:
660:
657:
654:
651:
648:
645:
642:
639:
636:
633:
630:
627:
624:
621:
618:
615:
612:
609:
606:
603:
600:
597:
594:
591:
588:
585:
582:
579:
576:
573:
570:
567:
564:
561:
558:
555:
552:
549:
536:
513:
505:
497:
485:
471:
459:
435:
427:process calculi
419:
414:
389:
388:
385:
382:
379:
376:
373:
370:
367:
364:
361:
358:
355:
352:
349:
346:
343:
340:
337:
335://join patterns
334:
331:
328:
313:
309:
305:
268:
260:
256:
255:
228:
193:message passing
132:implementations
79:
68:
62:
59:
51:help improve it
48:
39:
35:
28:
23:
22:
15:
12:
11:
5:
10248:
10246:
10238:
10237:
10232:
10222:
10221:
10218:
10217:
10206:
10195:
10182:
10179:
10175:
10174:
10172:
10171:
10166:
10161:
10156:
10151:
10145:
10143:
10137:
10136:
10134:
10133:
10128:
10123:
10118:
10112:
10111:
10106:
10101:
10096:
10090:
10088:
10084:
10083:
10078:
10076:
10075:
10068:
10061:
10053:
10044:
10043:
10041:
10040:
10030:
10019:
10016:
10015:
10013:
10012:
10007:
10002:
9997:
9992:
9987:
9981:
9979:
9978:Related fields
9975:
9974:
9971:
9970:
9968:
9967:
9962:
9957:
9952:
9946:
9944:
9940:
9939:
9937:
9936:
9931:
9926:
9921:
9916:
9911:
9909:Function model
9906:
9901:
9896:
9891:
9885:
9883:
9879:
9878:
9876:
9875:
9870:
9865:
9860:
9855:
9850:
9845:
9840:
9835:
9830:
9825:
9820:
9815:
9813:Executable UML
9810:
9805:
9799:
9797:
9790:
9786:
9785:
9783:
9782:
9777:
9772:
9767:
9762:
9757:
9751:
9749:
9745:
9744:
9742:
9741:
9736:
9735:
9734:
9724:
9719:
9714:
9709:
9704:
9699:
9694:
9689:
9684:
9679:
9674:
9669:
9664:
9659:
9654:
9653:
9652:
9647:
9642:
9637:
9632:
9622:
9617:
9611:
9609:
9605:
9604:
9602:
9601:
9596:
9591:
9586:
9581:
9576:
9571:
9566:
9561:
9556:
9554:Formal methods
9551:
9546:
9541:
9536:
9530:
9528:
9524:
9523:
9518:
9516:
9515:
9508:
9501:
9493:
9484:
9483:
9481:
9480:
9475:
9469:
9467:
9463:
9462:
9460:
9459:
9454:
9448:
9446:
9442:
9441:
9439:
9438:
9433:
9428:
9423:
9418:
9413:
9408:
9403:
9398:
9396:John Vlissides
9393:
9388:
9383:
9377:
9375:
9371:
9370:
9368:
9367:
9360:
9352:
9350:
9346:
9345:
9343:
9342:
9337:
9332:
9327:
9322:
9317:
9312:
9307:
9302:
9297:
9292:
9287:
9282:
9277:
9271:
9269:
9263:
9262:
9260:
9259:
9254:
9249:
9244:
9239:
9234:
9229:
9224:
9219:
9214:
9209:
9204:
9196:
9191:
9186:
9185:
9184:
9179:
9169:
9164:
9158:
9156:
9148:
9147:
9145:
9144:
9139:
9134:
9129:
9124:
9119:
9114:
9109:
9104:
9099:
9094:
9089:
9084:
9079:
9074:
9069:
9064:
9058:
9056:
9048:
9047:
9044:
9043:
9041:
9040:
9035:
9030:
9025:
9020:
9015:
9010:
9005:
9000:
8995:
8990:
8984:
8982:
8976:
8975:
8973:
8972:
8967:
8962:
8957:
8952:
8947:
8942:
8936:
8934:
8928:
8927:
8925:
8924:
8919:
8914:
8912:Factory method
8909:
8904:
8898:
8896:
8887:
8879:
8878:
8873:
8871:
8870:
8863:
8856:
8848:
8842:
8841:
8835:
8830:
8828:Scalable Joins
8825:
8818:
8817:External links
8815:
8813:
8812:
8795:
8778:
8771:
8741:
8727:
8720:
8684:
8681:on 2015-04-25.
8666:
8655:
8633:
8626:
8603:
8589:
8582:
8562:
8559:on 2013-11-26.
8544:
8530:
8515:
8508:
8472:
8469:on 2013-02-19.
8451:
8431:
8399:
8392:
8351:
8336:
8300:
8293:
8267:
8260:
8229:
8222:
8199:
8192:
8166:
8159:
8136:
8129:
8103:
8088:
8081:
8051:
8036:
8021:
8006:
7999:
7971:
7952:
7937:
7911:
7904:
7878:
7871:
7845:
7825:
7798:
7771:
7733:
7726:
7690:
7663:
7649:
7622:
7606:
7604:
7601:
7599:
7598:
7593:978-1601320841
7592:
7574:
7568:
7550:
7529:
7518:
7509:
7495:
7464:
7458:
7427:
7418:
7412:
7381:
7372:
7366:
7335:
7329:
7308:
7302:
7281:
7270:"JoinCalculus"
7266:
7249:
7247:
7244:
7243:
7242:
7236:
7228:
7225:
7224:
7223:
7216:parallel split
7211:
7210:
7202:
7199:
7186:
7183:
7175:
7172:
7047:
6703:
6689:
6686:
6464:
6458:
6455:
6393:CaseTakeAndPut
6334:
6323:
6320:
6318:
6315:
5304:
5295:
5294:
5291:
5241:strongly typed
5229:
5226:
5223:
4167:
4150:
4147:
4146:
4145:
4142:
4139:
4127:
4124:
4108:
4105:
3937:
3928:
3925:
3838:
3829:
3826:
3754:
3744:
3741:
3739:
3736:
3559:
3537:
3534:
3429:
3427:
3426:
3270:perform_action
3220:
3218:
3217:
3064:
3062:
3061:
2955:
2953:
2952:
2700:
2698:
2697:
2670:
2667:
2546:
2537:
2536:
2489:
2484:
2483:
2416:
2411:
2410:
2394:
2391:
2388:
2387:
2384:
2381:
2378:
2375:
2372:
2369:
2366:
2363:
2360:
2357:
2354:
2351:
2347:
2346:
2343:
2340:
2337:
2334:
2331:
2328:
2325:
2322:
2319:
2316:
2313:
2310:
2306:
2305:
2302:
2299:
2296:
2293:
2290:
2287:
2284:
2281:
2278:
2275:
2272:
2269:
2265:
2264:
2261:
2258:
2255:
2252:
2249:
2246:
2243:
2240:
2237:
2234:
2231:
2228:
2224:
2223:
2220:
2217:
2214:
2211:
2208:
2205:
2202:
2199:
2196:
2193:
2190:
2187:
2166:
2163:
2137:
2132:
2131:
2118:
2108:
2105:
2077:
2074:
2072:
2069:
2068:
2067:
2061:
2055:
2049:
2043:
2037:
2031:
2025:
2015:
2012:
2006:
2000:
1994:
1988:
1980:
1977:
1812:
1810:
1809:
1378:
1376:
1375:
1142:
1140:
1139:
1005:
1003:
1002:
733:
731:
730:
548:
546:
545:
535:
532:
512:
511:JErlang – 2009
509:
504:
501:
496:
493:
484:
481:
470:
467:
458:
455:
434:
431:
418:
415:
413:
410:
327:
253:
236:message queues
227:
224:
172:
171:
165:
164:
160:
159:
135:
134:
127:
126:
121:
117:
116:
110:
104:
103:
94:
81:
80:
42:
40:
33:
26:
24:
14:
13:
10:
9:
6:
4:
3:
2:
10247:
10236:
10233:
10231:
10228:
10227:
10225:
10213:
10207:
10202:
10196:
10191:
10185:
10184:
10180:
10170:
10167:
10165:
10162:
10160:
10157:
10155:
10152:
10150:
10147:
10146:
10144:
10142:
10138:
10132:
10129:
10127:
10124:
10122:
10119:
10117:
10114:
10113:
10110:
10107:
10105:
10102:
10100:
10097:
10095:
10092:
10091:
10089:
10085:
10081:
10074:
10069:
10067:
10062:
10060:
10055:
10054:
10051:
10039:
10031:
10029:
10021:
10020:
10017:
10011:
10008:
10006:
10003:
10001:
9998:
9996:
9993:
9991:
9988:
9986:
9983:
9982:
9980:
9976:
9966:
9963:
9961:
9958:
9956:
9953:
9951:
9948:
9947:
9945:
9941:
9935:
9932:
9930:
9929:Systems model
9927:
9925:
9922:
9920:
9917:
9915:
9912:
9910:
9907:
9905:
9902:
9900:
9897:
9895:
9892:
9890:
9887:
9886:
9884:
9880:
9874:
9871:
9869:
9866:
9864:
9861:
9859:
9856:
9854:
9851:
9849:
9846:
9844:
9841:
9839:
9836:
9834:
9831:
9829:
9826:
9824:
9821:
9819:
9816:
9814:
9811:
9809:
9806:
9804:
9801:
9800:
9798:
9796:Developmental
9794:
9791:
9787:
9781:
9778:
9776:
9773:
9771:
9768:
9766:
9763:
9761:
9758:
9756:
9753:
9752:
9750:
9746:
9740:
9737:
9733:
9730:
9729:
9728:
9725:
9723:
9720:
9718:
9715:
9713:
9710:
9708:
9705:
9703:
9700:
9698:
9695:
9693:
9690:
9688:
9685:
9683:
9680:
9678:
9675:
9673:
9670:
9668:
9665:
9663:
9660:
9658:
9657:Data modeling
9655:
9651:
9648:
9646:
9643:
9641:
9638:
9636:
9633:
9631:
9628:
9627:
9626:
9623:
9621:
9618:
9616:
9613:
9612:
9610:
9606:
9600:
9597:
9595:
9592:
9590:
9587:
9585:
9582:
9580:
9577:
9575:
9572:
9570:
9567:
9565:
9562:
9560:
9557:
9555:
9552:
9550:
9547:
9545:
9542:
9540:
9537:
9535:
9532:
9531:
9529:
9525:
9521:
9514:
9509:
9507:
9502:
9500:
9495:
9494:
9491:
9479:
9476:
9474:
9471:
9470:
9468:
9464:
9458:
9455:
9453:
9450:
9449:
9447:
9443:
9437:
9434:
9432:
9429:
9427:
9424:
9422:
9421:Robert Martin
9419:
9417:
9416:Martin Fowler
9414:
9412:
9409:
9407:
9404:
9402:
9399:
9397:
9394:
9392:
9391:Ralph Johnson
9389:
9387:
9384:
9382:
9379:
9378:
9376:
9372:
9366:
9365:
9361:
9359:
9358:
9354:
9353:
9351:
9347:
9341:
9338:
9336:
9333:
9331:
9328:
9326:
9323:
9321:
9318:
9316:
9313:
9311:
9308:
9306:
9303:
9301:
9298:
9296:
9293:
9291:
9288:
9286:
9283:
9281:
9278:
9276:
9273:
9272:
9270:
9264:
9258:
9255:
9253:
9250:
9248:
9245:
9243:
9240:
9238:
9235:
9233:
9230:
9228:
9227:Active record
9225:
9223:
9220:
9218:
9217:Naked objects
9215:
9213:
9210:
9208:
9207:Specification
9205:
9203:
9201:
9197:
9195:
9192:
9190:
9187:
9183:
9180:
9178:
9175:
9174:
9173:
9170:
9168:
9165:
9163:
9160:
9159:
9157:
9155:
9152:Architectural
9149:
9143:
9140:
9138:
9135:
9133:
9130:
9128:
9125:
9123:
9120:
9118:
9115:
9113:
9110:
9108:
9105:
9103:
9100:
9098:
9095:
9093:
9090:
9088:
9085:
9083:
9080:
9078:
9075:
9073:
9070:
9068:
9065:
9063:
9062:Active object
9060:
9059:
9057:
9055:
9049:
9039:
9036:
9034:
9031:
9029:
9026:
9024:
9021:
9019:
9016:
9014:
9011:
9009:
9006:
9004:
9001:
8999:
8996:
8994:
8991:
8989:
8986:
8985:
8983:
8981:
8977:
8971:
8968:
8966:
8963:
8961:
8958:
8956:
8953:
8951:
8948:
8946:
8943:
8941:
8938:
8937:
8935:
8933:
8929:
8923:
8920:
8918:
8915:
8913:
8910:
8908:
8905:
8903:
8900:
8899:
8897:
8895:
8891:
8888:
8886:
8880:
8876:
8869:
8864:
8862:
8857:
8855:
8850:
8849:
8846:
8840:
8836:
8834:
8831:
8829:
8826:
8824:
8821:
8820:
8816:
8808:
8807:
8799:
8796:
8791:
8790:
8782:
8779:
8774:
8768:
8764:
8760:
8756:
8752:
8745:
8742:
8737:
8731:
8728:
8723:
8717:
8713:
8709:
8704:
8699:
8695:
8688:
8685:
8680:
8676:
8670:
8667:
8664:
8659:
8656:
8651:
8644:
8637:
8634:
8629:
8623:
8616:
8615:
8607:
8604:
8599:
8593:
8590:
8585:
8579:
8575:
8574:
8566:
8563:
8558:
8554:
8553:"Parallel C#"
8548:
8545:
8540:
8534:
8531:
8526:
8519:
8516:
8511:
8505:
8500:
8495:
8491:
8487:
8483:
8476:
8473:
8468:
8464:
8463:
8455:
8452:
8447:
8440:
8438:
8436:
8432:
8427:
8423:
8420:(10): 53–72.
8419:
8415:
8408:
8406:
8404:
8400:
8395:
8389:
8385:
8381:
8376:
8371:
8367:
8360:
8358:
8356:
8352:
8347:
8343:
8339:
8333:
8329:
8325:
8320:
8315:
8311:
8304:
8301:
8296:
8290:
8286:
8282:
8278:
8271:
8268:
8263:
8257:
8253:
8249:
8245:
8238:
8236:
8234:
8230:
8225:
8219:
8212:
8211:
8203:
8200:
8195:
8189:
8182:
8181:
8173:
8171:
8167:
8162:
8156:
8149:
8148:
8140:
8137:
8132:
8126:
8119:
8118:
8110:
8108:
8104:
8099:
8092:
8089:
8084:
8078:
8074:
8070:
8066:
8062:
8055:
8052:
8047:
8040:
8037:
8032:
8025:
8022:
8017:
8010:
8007:
8002:
7996:
7991:
7986:
7982:
7975:
7972:
7967:
7963:
7956:
7953:
7948:
7944:
7940:
7938:0-7695-0342-X
7934:
7930:
7926:
7922:
7915:
7912:
7907:
7901:
7897:
7893:
7889:
7882:
7879:
7874:
7868:
7864:
7860:
7856:
7849:
7846:
7841:
7834:
7832:
7830:
7826:
7821:
7817:
7813:
7809:
7802:
7799:
7794:
7790:
7786:
7782:
7775:
7772:
7767:
7763:
7760:(10): 53–72.
7759:
7755:
7748:
7746:
7744:
7742:
7740:
7738:
7734:
7729:
7723:
7719:
7715:
7710:
7709:10.1.1.4.4788
7705:
7701:
7694:
7691:
7686:
7682:
7678:
7674:
7667:
7664:
7659:
7658:"Parallel C#"
7653:
7650:
7645:
7641:
7637:
7633:
7626:
7623:
7618:
7611:
7608:
7602:
7595:
7589:
7582:
7581:
7575:
7571:
7565:
7558:
7557:
7551:
7547:
7543:
7540:(10): 53–72.
7539:
7535:
7530:
7526:
7525:
7519:
7515:
7510:
7506:
7502:
7498:
7492:
7488:
7484:
7479:
7474:
7470:
7465:
7461:
7455:
7451:
7447:
7442:
7441:10.1.1.4.4788
7437:
7433:
7428:
7424:
7419:
7415:
7409:
7405:
7401:
7396:
7391:
7387:
7382:
7378:
7373:
7369:
7363:
7359:
7355:
7350:
7345:
7341:
7336:
7332:
7326:
7322:
7318:
7314:
7309:
7305:
7299:
7295:
7291:
7287:
7282:
7271:
7267:
7256:
7251:
7250:
7245:
7240:
7239:Join-calculus
7237:
7234:
7231:
7230:
7226:
7221:
7217:
7213:
7212:
7208:
7207:
7206:
7200:
7198:
7191:
7184:
7182:
7180:
7179:Join Language
7173:
7171:
7169:
7165:
7161:
7045:
7042:
7011:ReleaseShared
6966:ReleaseShared
6954:ReleaseShared
6915:ReleaseShared
6768:ReleaseShared
6701:
6698:
6695:
6687:
6685:
6462:
6456:
6454:
6332:
6330:
6321:
6316:
5302:
5300:
5292:
5289:
5288:
5287:
5285:
5280:
5278:
5273:
5271:
5267:
5263:
5258:
5255:
5254:like syntax.
5253:
5249:
5245:
5242:
5238:
5234:
5227:
5222:
4277:print_endline
4165:
4163:
4159:
4155:
4148:
4143:
4140:
4137:
4136:
4135:
4133:
4125:
4123:
4121:
4120:Polyphonic C#
4117:
4113:
4106:
4104:
3935:
3933:
3926:
3924:
3836:
3834:
3827:
3825:
3752:
3749:
3748:Polyphonic C#
3743:Polyphonic C#
3742:
3737:
3735:
3557:
3555:
3551:
3547:
3543:
3535:
3425:
3422:
3421:
3215:
3212:
3211:
3059:
3055:
3054:
2950:
2947:
2946:
2695:
2692:
2691:
2690:
2688:
2684:
2683:Join-Calculus
2680:
2676:
2668:
2666:
2664:
2663:Polyphonic C#
2544:
2541:
2535:
2532:
2531:
2494:ThreadExample
2487:
2480:
2477:
2476:
2414:
2407:
2404:
2403:
2402:
2400:
2392:
2385:
2382:
2379:
2376:
2373:
2370:
2367:
2364:
2361:
2358:
2355:
2352:
2349:
2348:
2344:
2341:
2338:
2335:
2332:
2329:
2326:
2323:
2320:
2317:
2314:
2311:
2308:
2307:
2303:
2300:
2297:
2294:
2291:
2288:
2285:
2282:
2279:
2276:
2273:
2270:
2267:
2266:
2262:
2259:
2256:
2253:
2250:
2247:
2244:
2241:
2238:
2235:
2232:
2229:
2226:
2225:
2221:
2218:
2215:
2212:
2209:
2206:
2203:
2200:
2198:Polyphonic C#
2197:
2195:Joins Library
2194:
2191:
2188:
2186:
2185:
2182:
2180:
2176:
2172:
2171:Polyphonic C#
2164:
2162:
2161:
2154:
2144:
2135:
2129:
2125:
2122:
2119:
2116:
2115:
2114:
2106:
2104:
2103:themselves).
2099:
2094:
2090:
2086:
2083:
2075:
2070:
2065:
2062:
2059:
2056:
2053:
2050:
2047:
2044:
2041:
2038:
2035:
2032:
2029:
2026:
2023:
2019:
2016:
2013:
2010:
2007:
2004:
2001:
1998:
1995:
1992:
1989:
1986:
1985:Join-calculus
1983:
1982:
1978:
1808:
1805:
1804:
1374:
1371:
1370:
1138:
1135:
1134:
1001:
998:
997:
729:
726:
725:
544:
541:
540:
539:
533:
531:
529:
525:
521:
517:
510:
508:
502:
500:
494:
492:
490:
489:Polyphonic C#
482:
480:
477:
475:
468:
466:
464:
456:
454:
452:
448:
444:
440:
439:join-calculus
432:
430:
428:
424:
416:
411:
409:
401:
396:
395:
325:
298:
293:
288:
286:
280:
251:
237:
233:
225:
223:
221:
217:
213:
212:join-calculus
208:
206:
202:
198:
194:
190:
186:
182:
178:
177:Join-patterns
170:
169:Join Calculus
166:
161:
157:
153:
152:Joins library
149:
145:
141:
136:
133:
128:
125:
122:
118:
115:
111:
109:
105:
102:
98:
95:
93:
89:
77:
74:
66:
56:
52:
46:
43:This article
41:
32:
31:
19:
10215:}}
10209:{{
10204:}}
10198:{{
10193:}}
10187:{{
9924:Object model
9919:Metamodeling
9848:Spiral model
9748:Orientations
9473:Anti-pattern
9436:Linda Rising
9362:
9355:
9300:Lazy loading
9232:Identity map
9199:
9091:
8883:Gang of Four
8805:
8798:
8788:
8781:
8754:
8744:
8730:
8693:
8687:
8679:the original
8669:
8658:
8649:
8636:
8613:
8606:
8592:
8572:
8565:
8557:the original
8547:
8533:
8518:
8481:
8475:
8467:the original
8461:
8454:
8417:
8413:
8365:
8309:
8303:
8276:
8270:
8243:
8209:
8202:
8179:
8146:
8139:
8116:
8100:. p. 1.
8091:
8064:
8054:
8045:
8039:
8030:
8024:
8015:
8009:
7980:
7974:
7965:
7961:
7955:
7920:
7914:
7887:
7881:
7854:
7848:
7811:
7807:
7801:
7784:
7780:
7774:
7757:
7753:
7699:
7693:
7676:
7672:
7666:
7652:
7635:
7631:
7625:
7610:
7579:
7555:
7537:
7533:
7523:
7468:
7431:
7385:
7339:
7312:
7285:
7274:. Retrieved
7259:. Retrieved
7215:
7204:
7192:
7188:
7177:
7158:
7043:
7039:
6699:
6691:
6683:
6481:Asynchronous
6460:
6452:
6345:Asynchronous
6328:
6325:
6317:Visual Basic
6260:console_outp
6242:console_outp
6149:console_outp
5298:
5296:
5283:
5281:
5276:
5274:
5269:
5265:
5261:
5259:
5256:
5231:
5220:
4868:should_serve
4838:should_serve
4742:should_serve
4712:should_serve
4152:
4129:
4110:
4102:
3930:
3922:
3831:
3823:
3746:
3733:
3546:asynchronous
3539:
3455:asynchronous
3423:
3213:
3057:
2948:
2693:
2672:
2660:
2542:
2538:
2533:
2485:
2478:
2412:
2406:Join methods
2405:
2396:
2168:
2158:
2155:
2145:
2141:
2133:
2110:
2101:
2096:
2091:
2087:
2082:mobile agent
2079:
2076:Mobile agent
2009:Asynchronous
1850:Asynchronous
1416:Asynchronous
1395:Asynchronous
1168:Asynchronous
1043:Asynchronous
771:Asynchronous
537:
527:
523:
514:
506:
498:
486:
478:
472:
460:
436:
420:
406:
394:
391:
303:
290:
284:
282:
258:
229:
209:
176:
175:
140:Polyphonic C
86:Join-pattern
69:
63:January 2013
60:
44:
10109:Interpreted
9615:Abstraction
9445:Communities
9426:Jim Coplien
9401:Grady Booch
9386:Erich Gamma
9330:Type tunnel
9315:Object pool
9310:Null object
9305:Mock object
9167:Interceptor
9137:Thread pool
9052:Concurrency
8998:Interpreter
7168:Scala Joins
6511:Synchronous
6372:Synchronous
6278:console_inp
6164:console_inp
6098:'x'
6074:'t'
6050:'c'
6026:'d'
6002:'n'
5918:"Cofee
5513:refund_outp
5057:new_vending
4436:new_vending
3932:Parallel C#
3927:Parallel C#
3324:logout_user
3214:propagation
3044:Transaction
2963:Transaction
2421:JoinExample
2207:Scala Joins
2201:Parallel C#
2107:Compilation
2064:Overlapping
2003:Synchronous
1829:Synchronous
1446:Synchronous
1198:Synchronous
1022:Synchronous
756:Synchronous
565:Synchronous
526:stands for
226:Description
201:scalability
189:distributed
138:Join Java,
10224:Categories
10141:Generation
10121:High-level
9934:View model
9899:Data model
9340:Delegation
9275:Blackboard
8980:Behavioral
8932:Structural
8894:Creational
8448:. Denmark.
7814:(10): 18.
7638:(10): 10.
7425:. Denmark.
7276:2012-10-09
7261:2012-10-09
7246:References
7220:Map reduce
7160:Scala Join
6735:AsyncEvent
6595:Initialize
6574:Initialize
5486:drink_outp
5244:functional
4892:(* STOP *)
4766:(* STOP *)
4289:(* STOP *)
3690:chord_body
3678:chord_body
2509:SomeObject
2350:Overriding
1807:Semaphores
451:rendezvous
447:π-calculus
423:π-calculus
181:concurrent
163:Influenced
124:Inria Join
10116:Low-level
9943:Languages
9406:Kent Beck
9132:Semaphore
9122:Scheduler
8965:Flyweight
8955:Decorator
8950:Composite
8922:Singleton
8917:Prototype
8698:CiteSeerX
8370:CiteSeerX
8314:CiteSeerX
7787:(10): 5.
7704:CiteSeerX
7679:(10): 2.
7473:CiteSeerX
7436:CiteSeerX
7390:CiteSeerX
7344:CiteSeerX
7088:JoinActor
6813:Exclusive
6789:Exclusive
6741:Exclusive
6227:initially
5933:"Tea
4907:remainder
4844:remainder
4781:remainder
4718:remainder
4077:WriteLine
3554:Boost c++
2702:operation
2543:Example:
2486:Example:
2439:fragment2
2430:fragment1
2413:Example:
2393:Join Java
2216:Join Java
2018:Scheduler
1868:Semaphore
1817:Semaphore
909:chopstick
894:chopstick
828:chopstick
780:chopstick
495:Cω – 2003
322:x<>
259:Argument
214:and uses
108:Developer
18:Join Java
10181:See also
10131:Esoteric
10104:Compiled
10099:Assembly
10038:Category
9904:ER model
9770:Ontology
9682:Software
9608:Concepts
9466:See also
9268:patterns
9154:patterns
9107:Proactor
9054:patterns
9028:Strategy
9018:Observer
9008:Mediator
9003:Iterator
8885:patterns
8598:"Comega"
7947:14355301
7227:See also
6646:delegate
6508:readonly
6478:readonly
6442:Function
6390:Function
5250:, and a
3567:typename
3561:template
2309:Generics
2124:Archived
1847:readonly
1826:readonly
1443:readonly
1413:readonly
1392:readonly
1195:readonly
1165:readonly
1040:readonly
1019:readonly
562:readonly
543:Barriers
292:pattern.
277:i > 1
265:When(a1)
185:parallel
92:Paradigm
10094:Machine
10028:Commons
9853:V-model
9320:Servant
9252:Model 2
9112:Reactor
9102:Monitor
9067:Balking
9038:Visitor
9013:Memento
8993:Command
8940:Adapter
8907:Builder
8837:INRIA,
8486:Bibcode
8346:9956643
7505:9956643
7174:Haskell
7164:Chymyst
7106:receive
7085:extends
7023:Sharing
6993:Sharing
6975:Sharing
6942:Sharing
6924:Sharing
6885:Sharing
6867:Sharing
6834:Sharing
6798:Sharing
6726:Sharing
6720:private
6711:extends
6526:Channel
6487:Channel
6387:Private
6272:control
6203:control
6191:control
6113:BCancel
6065:BCoffee
5993:Buttons
5948:control
5729:BCancel
5651:BCoffee
5459:Buttons
5369:BCancel
5357:BCoffee
5351:Buttons
5272:tuple.
5252:Haskell
5189:BCancel
5183:cbutton
5153:cbutton
5129:BCoffee
5123:cbutton
5051:cbutton
4937:BCancel
4685:BCoffee
4403:sprintf
4226:BCancel
4214:BCoffee
4208:buttons
4089:Receive
4071:Console
3960:Receive
3879:channel
3858:channel
3843:handler
3431:receive
3342:receive
3291:session
3231:session
3222:receive
3132:receive
3066:receive
2957:receive
2711:receive
2669:JErlang
2551:ordered
2482:method.
2222:JoCaml
2189:JErlang
1997:Channel
1961:Release
1913:Release
1901:Acquire
1859:Release
1856:Channel
1838:Acquire
1835:Channel
1452:Channel
1422:Channel
1410:private
1401:Channel
1389:private
1213:Channel
1174:Channel
1118:Release
1097:Release
1085:Acquire
1052:Release
1049:Channel
1031:Acquire
1028:Channel
777:Channel
762:Channel
571:Channel
520:JErlang
412:History
285:handler
273:And(ai)
197:threads
120:Website
49:Please
10164:Fourth
10154:Second
9789:Models
9539:DevOps
9527:Fields
9374:People
9257:Broker
8960:Facade
8945:Bridge
8769:
8718:
8700:
8624:
8580:
8506:
8390:
8372:
8344:
8334:
8316:
8291:
8258:
8220:
8190:
8157:
8127:
8079:
7997:
7945:
7935:
7902:
7869:
7724:
7706:
7590:
7566:
7503:
7493:
7475:
7456:
7438:
7410:
7392:
7364:
7346:
7327:
7300:
7185:Scheme
7082:Buffer
6903:Shared
6858:Shared
6762:Shared
6664:return
6652:string
6562:Create
6538:Buffer
6535:public
6517:string
6505:public
6493:string
6475:public
6469:Buffer
6448:Module
6433:Return
6417:String
6408:String
6384:String
6369:Public
6363:String
6342:Public
6339:Buffer
6336:Module
6305:button
6299:coffee
6287:coffee
6248:coffee
6215:coffee
6209:button
6161:stream
6146:stream
6011:Nickel
5987:button
5939:"
5924:"
5912:Coffee
5882:credit
5852:credit
5828:credit
5819:credit
5798:refund
5777:"
5771:"
5747:refund
5669:Coffee
5537:Nickel
5519:String
5492:String
5453:button
5432:coffee
5423:string
5402:string
5396:String
5336:Coffee
5330:Drinks
5315:Nickel
5237:strict
5221:gives
5087:Nickel
5075:Nickel
5063:refund
5030:button
5000:button
4961:refund
4931:button
4925:button
4805:button
4799:button
4754:Coffee
4679:button
4553:Nickel
4535:credit
4511:credit
4490:credit
4472:credit
4442:refund
4397:Printf
4373:refund
4325:Coffee
4196:Coffee
4190:drinks
4178:Nickel
4154:JoCaml
4149:JoCaml
4047:Test13
4035:Test13
4023:string
4011:static
4008:public
3990:return
3951:Test13
3942:System
3900:return
3840:public
3807:return
3795:String
3783:public
3771:String
3768:public
3762:Buffer
3756:public
3717:return
3696:void_t
3672:buffer
3642:buffer
3594:public
3585:public
3579:buffer
3550:chords
3473:accept
3437:accept
3384:commit
3309:logout
3276:Action
3255:Action
3174:commit
2949:Guards
2687:Erlang
2679:Erlang
2675:Erlang
2632:signal
2503:thread
2500:signal
2460:return
2213:Scheme
2179:Scheme
1865:public
1844:public
1823:public
1686:shared
1629:shared
1587:shared
1569:shared
1533:shared
1479:public
1440:public
1434:shared
1351:return
1249:Create
1225:Buffer
1222:public
1192:public
1162:public
1147:Buffer
1058:public
1037:public
1016:public
927:hungry
801:hungry
765:hungry
750:Create
691:Arrive
625:Arrive
580:public
574:Arrive
559:public
516:Erlang
474:JoCaml
130:Major
112:INRIA
10169:Fifth
10159:Third
10149:First
10087:Level
9965:SysML
9889:SPICE
9882:Other
9843:Scrum
9803:Agile
9755:Agile
9739:CI/CD
9349:Books
9266:Other
9202:-tier
9023:State
8970:Proxy
8646:(PDF)
8618:(PDF)
8342:S2CID
8214:(PDF)
8184:(PDF)
8151:(PDF)
8121:(PDF)
7943:S2CID
7603:Notes
7584:(PDF)
7560:(PDF)
7501:S2CID
7142:reply
7136:=>
7121:&
7079:class
7061:Join1
7014:reply
6987:=>
6972:&
6957:reply
6936:=>
6921:&
6906:reply
6879:=>
6864:&
6849:reply
6828:=>
6816:reply
6810:=>
6795:&
6714:Joins
6705:class
6688:Scala
6466:class
6399:ByVal
6354:ByVal
6254:value
6221:value
6182:cofee
6125:->
6101:->
6077:->
6053:->
6029:->
6005:->
5999:match
5981:Coins
5930:->
5915:->
5906:drink
5897:drink
5894:serve
5846:drink
5843:serve
5831:>=
5813:drink
5741:->
5702:->
5663:->
5609:->
5555:->
5528:match
5498:value
5465:value
5447:Coins
5309:Coins
5235:is a
5201:sleep
5171:sleep
5141:sleep
5111:sleep
5093:ccoin
5081:ccoin
5069:ccoin
5060:serve
5045:ccoin
5009:value
5006:spawn
4991:reply
4988:&
4976:value
4973:&
4946:value
4943:&
4916:reply
4913:&
4901:value
4898:&
4874:serve
4820:value
4817:&
4790:reply
4787:&
4775:value
4772:&
4748:serve
4694:value
4691:&
4664:reply
4661:&
4643:value
4628:value
4625:&
4598:reply
4595:&
4577:value
4562:value
4559:&
4529:false
4493:>=
4439:serve
4349:->
4328:->
4319:drink
4316:match
4307:drink
4301:serve
4172:coins
4162:OCaml
3969:async
3966:&
3948:class
3939:using
3876:&
3855:&
3786:async
3780:&
3759:class
3669:&
3651:chord
3618:synch
3600:async
3588:joint
3576:class
3524:Value
3503:Value
3485:->
3461:Value
3396:->
3321:->
3267:->
3186:->
3108:found
3102:->
3056:With
3029:->
3023:Upper
3020:<=
3008:<=
3005:Lower
2993:Upper
2987:Lower
2981:limit
2915:->
2840:->
2765:->
2708:->
2694:Joins
2641:&
2617:&
2593:&
2569:&
2548:class
2491:class
2436:&
2418:class
2160:them.
1925:=>
1814:class
1779:=>
1746:=>
1644:=>
1584:=>
1530:=>
1380:class
1345:=>
1144:class
1109:=>
1007:class
981:right
963:=>
951:right
903:right
709:=>
550:class
441:is a
275:(for
205:chord
156:Boost
114:Inria
9950:IDEF
9894:CMMI
9780:SDLC
9325:Twin
9182:MVVM
9097:Lock
9092:Join
8767:ISBN
8716:ISBN
8622:ISBN
8578:ISBN
8504:ISBN
8388:ISBN
8332:ISBN
8289:ISBN
8256:ISBN
8218:ISBN
8188:ISBN
8155:ISBN
8125:ISBN
8077:ISBN
7995:ISBN
7966:2395
7933:ISBN
7900:ISBN
7867:ISBN
7722:ISBN
7588:ISBN
7564:ISBN
7491:ISBN
7454:ISBN
7408:ISBN
7362:ISBN
7325:ISBN
7298:ISBN
7162:and
7112:case
7076:Join
6963:case
6912:case
6855:case
6819:case
6786:case
6780:join
6616:When
6610:join
6589:join
6568:join
6556:Join
6550:join
6547:Join
6520:>
6514:<
6496:>
6490:<
6424:Take
6421:When
6375:Take
6329:when
6293:coin
6269:wire
6197:coin
6179:wire
6167:from
6089:BTea
6035:Dime
5975:coin
5963:char
5903:case
5870:else
5858:cost
5837:then
5834:cost
5816:cost
5810:vend
5762:show
5705:vend
5690:BTea
5666:vend
5591:Dime
5441:coin
5408:show
5393:type
5375:type
5363:BTea
5348:data
5327:data
5321:Dime
5306:data
5284:wire
5233:Hume
5228:Hume
5195:Unix
5165:Unix
5159:BTea
5135:Unix
5105:Unix
5099:Dime
5024:coin
4886:else
4871:then
4850:vend
4811:BTea
4760:else
4745:then
4724:vend
4673:coin
4619:Dime
4613:coin
4607:coin
4547:coin
4523:else
4517:cost
4505:true
4499:then
4496:cost
4457:cost
4451:vend
4322:with
4220:BTea
4184:Dime
4169:type
4092:());
4059:Send
4026:args
4017:Main
4014:void
3972:Send
3888:long
3867:long
3849:long
3846:Get2
3633:>
3630:void
3621:<
3609:>
3603:<
3573:>
3564:<
3509:Pid2
3488:Pid1
3479:Pid2
3443:Pid1
3366:auth
3225:prop
3156:auth
2999:when
2846:mult
2798:mult
2608:void
2584:void
2560:void
2263:Yes
2219:Hume
1943:>
1895:When
1788:idle
1785:());
1782:idle
1767:RelW
1761:When
1734:idle
1722:AcqW
1716:When
1680:else
1671:idle
1617:RelR
1611:When
1557:AcqR
1551:When
1518:idle
1506:AcqR
1500:When
1473:RelW
1467:RelR
1461:AcqW
1455:AcqR
1431:>
1425:<
1404:idle
1309:When
1288:Init
1264:Init
1243:Join
1234:Join
1207:>
1201:<
1183:>
1177:<
1156:>
1150:<
1079:When
1061:Lock
1010:Lock
975:left
939:left
921:When
888:left
864:<
819:Init
792:Init
744:Join
655:<
619:When
528:Join
421:The
383:JBIS
350:>
344:<
240:when
187:and
9960:USL
9955:UML
9833:RAD
9808:EUP
9194:ECS
9189:ADR
9177:MVP
9172:MVC
8759:doi
8708:doi
8494:doi
8422:doi
8380:doi
8324:doi
8281:doi
8248:doi
8069:doi
7985:doi
7925:doi
7892:doi
7859:doi
7816:doi
7789:doi
7762:doi
7714:doi
7681:doi
7640:doi
7542:doi
7483:doi
7446:doi
7400:doi
7354:doi
7317:doi
7290:doi
7139:Get
7124:Put
7115:Get
7097:act
7094:def
7073:new
7067:Get
7064:val
7058:new
7052:Put
7049:val
6774:new
6759:val
6753:new
6738:val
6732:new
6723:val
6673:});
6634:Put
6628:And
6622:Get
6604:Get
6601:out
6583:Put
6580:out
6565:();
6529:Get
6499:Put
6445:End
6439:End
6430:Put
6348:Put
5969:out
5945:box
5927:Tea
5744:let
5708:Tea
5507:Int
5480:out
5471:Int
5429:box
5384:int
5378:Int
5342:Tea
5299:box
5277:box
5270:out
5262:box
5042:let
4880:Tea
4835:let
4709:let
4544:def
4478:int
4463:int
4448:let
4433:let
4415:put
4388:let
4370:def
4352:put
4346:Tea
4331:put
4298:def
4262:put
4259:def
4205:and
4202:Tea
4187:and
4050:();
4044:new
3978:int
3957:int
3833:MC#
3828:MC#
3789:put
3774:get
3663:put
3657:get
3636:get
3612:put
3536:C++
3530:end
3467:and
3449:and
3417:end
3405:Pin
3378:and
3372:Pin
3360:and
3348:Pin
3339:...
3336:end
3303:and
3249:act
3243:and
3207:end
3195:Pin
3168:and
3162:Pin
3150:and
3138:Pin
3129:...
3126:end
3090:set
3084:and
3072:get
3050:end
3014:and
2975:and
2942:end
2939:end
2921:sub
2903:val
2897:and
2885:val
2879:and
2873:sub
2828:val
2822:and
2810:val
2804:and
2771:sum
2753:val
2747:and
2735:val
2729:and
2723:sum
2673:In
2445:int
2427:int
2386:No
2380:Yes
2374:Yes
2371:Yes
2368:Yes
2356:Yes
2345:No
2333:Yes
2330:Yes
2318:Yes
2312:Yes
2292:Yes
2289:Yes
2286:Yes
2283:Yes
2280:Yes
2277:Yes
2260:Yes
2257:Yes
2254:Yes
2251:Yes
2248:Yes
2245:Yes
2242:Yes
2239:Yes
2236:Yes
2233:Yes
2230:Yes
2175:MC#
2173:or
1964:();
1934:for
1931:});
1922:(()
1907:And
1874:int
1791:();
1776:(()
1752:});
1743:(()
1728:And
1707:});
1674:();
1623:And
1602:));
1563:And
1542:));
1527:(()
1512:And
1428:int
1360:});
1327:Put
1321:And
1315:Get
1297:Get
1294:out
1273:Put
1270:out
1252:();
1216:Get
1186:Put
1121:();
1115:});
1106:(()
1091:And
990:});
984:();
978:();
972:();
969:eat
960:(()
945:And
933:And
900:var
885:var
846:int
840:for
825:out
798:out
753:();
735:var
715:});
706:(()
697:pat
685:And
679:pat
673:pat
637:int
631:for
607:pat
604:var
589:int
332:::=
318:x()
271:to
263:of
244:and
142:#,
53:to
10226::
9863:XP
9838:UP
8765:.
8753:.
8714:.
8706:.
8648:.
8502:.
8492:.
8434:^
8418:43
8416:.
8402:^
8386:.
8378:.
8354:^
8340:.
8330:.
8322:.
8287:.
8254:.
8232:^
8169:^
8106:^
8075:.
8063:.
7993:.
7964:.
7941:.
7931:.
7898:.
7865:.
7828:^
7812:43
7810:.
7785:43
7783:.
7758:43
7756:.
7736:^
7720:.
7712:.
7677:43
7675:.
7636:43
7634:.
7538:43
7536:.
7499:.
7489:.
7481:.
7452:.
7444:.
7406:.
7398:.
7360:.
7352:.
7323:.
7296:.
7222:).
7170:.
7118:()
7100:()
7008:);
6969:()
6951:);
6918:()
6900:);
6861:()
6843:);
6825:()
6792:()
6640:Do
6637:).
6625:).
6607:);
6586:);
6541:()
6419:_
6414:As
6405:As
6381:As
6378:()
6360:As
6152:to
5990:::
5978:::
5960:::
5951:in
5936:\n
5921:\n
5909:of
5891:);
5825:if
5780:in
5774:\n
5768:++
5759:++
5672:10
5627:10
5516:::
5504:::
5489:::
5468:::
5456:::
5444:::
5435:in
5420:as
5387:32
5297:A
5282:A
5266:in
5239:,
5216:;;
5192:);
5180:);
5162:);
5150:);
5132:);
5120:);
5102:);
5090:);
5078:);
5066:in
5036:;;
5003:in
4997:to
4994:()
4928:or
4922:to
4919:()
4865:if
4859:in
4802:or
4796:to
4793:()
4739:if
4733:in
4727:10
4676:or
4670:to
4667:()
4655:10
4610:or
4604:to
4601:()
4541:in
4487:if
4427:;;
4412:in
4364:;;
4292:;;
4256:*)
4229:;;
4112:Cω
4107:Cω
4068:);
3963:()
3915:);
3882:c2
3861:c1
3852:()
3777:()
3738:C#
3729:};
3681:);
3675:::
3645:()
3556:.
3518:ok
3506:},
3497:ok
3411:Id
3390:Id
3354:id
3330:Id
3315:Id
3297:Id
3285:);
3282:Id
3261:Id
3240:})
3237:Id
3228:({
3201:Id
3180:Id
3144:id
2936:};
2867:ok
2861:};
2792:ok
2786:};
2717:ok
2705:()
2665:.
2647:()
2638:()
2623:()
2614:()
2599:()
2590:()
2575:()
2566:()
2433:()
2383:No
2377:No
2353:No
2342:No
2339:No
2336:No
2327:No
2321:No
2295:No
2210:F#
2204:Cω
2192:CB
2080:A
1955:--
1937:(;
1919:Do
1916:).
1904:).
1773:Do
1770:).
1740:Do
1737:).
1725:).
1701:);
1659:==
1650:if
1635:Do
1632:).
1620:).
1575:Do
1572:).
1560:).
1524:Do
1521:).
1509:).
1485:()
1333:Do
1330:).
1318:).
1300:);
1276:);
1228:()
1103:Do
1100:).
1088:).
1064:()
957:Do
954:).
942:).
930:).
876:++
837:);
810:);
703:Do
694:);
667:++
628:);
491:.
269:ai
261:a1
248:do
232:Cω
183:,
154:,
150:,
148:Cω
146:,
99:,
10072:e
10065:t
10058:v
9512:e
9505:t
9498:v
9200:n
8867:e
8860:t
8853:v
8775:.
8761::
8738:.
8724:.
8710::
8630:.
8600:.
8586:.
8541:.
8527:.
8512:.
8496::
8488::
8428:.
8424::
8396:.
8382::
8348:.
8326::
8297:.
8283::
8264:.
8250::
8226:.
8196:.
8163:.
8133:.
8085:.
8071::
8033:.
8018:.
8003:.
7987::
7968:.
7949:.
7927::
7908:.
7894::
7875:.
7861::
7822:.
7818::
7795:.
7791::
7768:.
7764::
7730:.
7716::
7687:.
7683::
7660:.
7646:.
7642::
7619:.
7596:.
7572:.
7548:.
7544::
7516:.
7507:.
7485::
7462:.
7448::
7416:.
7402::
7370:.
7356::
7333:.
7319::
7306:.
7292::
7279:.
7264:.
7154:}
7151:}
7148:}
7145:x
7133:)
7130:x
7127:(
7109:{
7103:{
7091:{
7070:=
7055:=
7035:}
7032:)
7029:0
7026:(
7020:}
7017:}
7005:1
7002:-
6999:n
6996:(
6990:{
6984:)
6981:n
6978:(
6960:}
6948:0
6945:(
6939:{
6933:)
6930:1
6927:(
6909:}
6897:1
6894:+
6891:n
6888:(
6882:{
6876:)
6873:n
6870:(
6852:}
6840:0
6837:(
6831:{
6807:)
6804:0
6801:(
6783:{
6771:=
6765:,
6750:=
6744:,
6729:=
6717:{
6679:}
6676:}
6670:;
6667:s
6661:{
6658:)
6655:s
6649:(
6643:(
6631:(
6619:(
6613:.
6598:(
6592:.
6577:(
6571:.
6559:.
6553:=
6544:{
6532:;
6523:.
6502:;
6484:.
6472:{
6436:s
6427:,
6411:)
6402:s
6396:(
6366:)
6357:s
6351:(
6311:;
6308:)
6302:.
6296:,
6290:.
6284:(
6281:)
6275:(
6266:;
6263:)
6257:,
6251:.
6245:,
6239:(
6233:)
6230:0
6224:’
6218:.
6212:,
6206:.
6200:,
6194:.
6188:(
6173:;
6158:;
6143:;
6140:)
6137:*
6134:,
6131:*
6128:(
6122:_
6119:|
6116:)
6110:,
6107:*
6104:(
6095:|
6092:)
6086:,
6083:*
6080:(
6071:|
6068:)
6062:,
6059:*
6056:(
6047:|
6044:)
6041:*
6038:,
6032:(
6023:|
6020:)
6017:*
6014:,
6008:(
5996:)
5984:,
5972:(
5966:)
5957:c
5954:(
5942:;
5900:=
5888:*
5885:,
5879:,
5876:*
5873:(
5867:)
5864:*
5861:,
5855:-
5849:,
5840:(
5822:=
5807:;
5804:)
5801:v
5795:,
5792:0
5789:,
5786:*
5783:(
5765:u
5753:=
5750:u
5738:)
5735:v
5732:,
5726:,
5723:*
5720:(
5717:|
5714:v
5711:5
5699:)
5696:v
5693:,
5687:,
5684:*
5681:(
5678:|
5675:v
5660:)
5657:v
5654:,
5648:,
5645:*
5642:(
5639:|
5636:)
5633:*
5630:,
5624:+
5621:v
5618:,
5615:*
5612:(
5606:)
5603:v
5600:,
5597:*
5594:,
5588:(
5585:|
5582:)
5579:*
5576:,
5573:5
5570:+
5567:v
5564:,
5561:*
5558:(
5552:)
5549:v
5546:,
5543:*
5540:,
5534:(
5522:)
5510:,
5501:’
5495:,
5483:(
5474:)
5462:,
5450:,
5438:(
5426:;
5417:u
5414:=
5411:u
5405:;
5399:=
5390:;
5381:=
5372:;
5366:|
5360:|
5354:=
5345:;
5339:|
5333:=
5324:;
5318:|
5312:=
5210:)
5207:1
5204:(
5198:.
5186:(
5177:1
5174:(
5168:.
5156:(
5147:1
5144:(
5138:.
5126:(
5117:1
5114:(
5108:.
5096:(
5084:(
5072:(
5054:=
5048:,
5027:,
5021:;
5018:)
5015:0
5012:(
4985:)
4982:0
4979:(
4970:)
4967:v
4964:(
4958:=
4955:)
4952:v
4949:(
4940:)
4934:(
4910:)
4904:(
4895:)
4889:0
4883:)
4877:(
4862:(
4856:v
4853:5
4847:=
4841:,
4832:=
4829:)
4826:v
4823:(
4814:)
4808:(
4784:)
4778:(
4769:)
4763:0
4757:)
4751:(
4736:(
4730:v
4721:=
4715:,
4706:=
4703:)
4700:v
4697:(
4688:)
4682:(
4658:)
4652:+
4649:v
4646:(
4640:=
4637:)
4634:v
4631:(
4622:)
4616:(
4592:)
4589:5
4586:+
4583:v
4580:(
4574:=
4571:)
4568:v
4565:(
4556:)
4550:(
4538:)
4532:,
4526:(
4520:)
4514:-
4508:,
4502:(
4484:=
4481:)
4475::
4469:(
4466:)
4460::
4454:(
4445:=
4424:)
4421:s
4418:(
4409:v
4400:.
4394:=
4391:s
4385:=
4382:)
4379:v
4376:(
4361:)
4355:(
4343:|
4340:)
4334:(
4313:=
4310:)
4304:(
4286:0
4283:;
4280:s
4274:=
4271:)
4268:s
4265:(
4223:|
4217:|
4211:=
4199:|
4193:=
4181:|
4175:=
4098:}
4095:}
4086:.
4083:t
4080:(
4074:.
4065:2
4062:(
4056:.
4053:t
4041:=
4038:t
4032:{
4029:)
4020:(
4005:}
4002:;
3999:x
3996:*
3993:x
3987:{
3984:)
3981:x
3975:(
3954:{
3945:;
3918:}
3912:y
3909:+
3906:x
3903:(
3897:{
3894:)
3891:y
3885:(
3873:)
3870:x
3864:(
3819:}
3816:}
3813:;
3810:s
3804:{
3801:)
3798:s
3792:(
3765:{
3726:}
3723:;
3720:p
3714:{
3711:)
3708:p
3705:V
3702:,
3699:g
3693:(
3687:V
3684:}
3666:,
3660:,
3654:(
3648:{
3639:;
3627:,
3624:V
3615:;
3606:V
3597::
3591:{
3582::
3570:V
3527:}
3521:,
3515:{
3512:!
3500:,
3494:{
3491:!
3482:}
3476:,
3470:{
3464:}
3458:,
3452:{
3446:}
3440:,
3434:{
3414:)
3408:,
3402:(
3393:}
3387:,
3381:{
3375:}
3369:,
3363:{
3357:}
3351:,
3345:{
3333:)
3327:(
3318:}
3312:,
3306:{
3300:}
3294:,
3288:{
3279:,
3273:(
3264:}
3258:,
3252:,
3246:{
3234:,
3204:)
3198:,
3192:(
3183:}
3177:,
3171:{
3165:}
3159:,
3153:{
3147:}
3141:,
3135:{
3123:}
3120:X
3117:,
3114:2
3111:,
3105:{
3099:}
3096:X
3093:,
3087:{
3081:}
3078:X
3075:,
3069:{
3047:)
3041:,
3038:M
3035:(
3026:)
3017:M
3011:M
3002:(
2996:}
2990:,
2984:,
2978:{
2972:}
2969:M
2966:,
2960:{
2933:Y
2930:-
2927:X
2924:,
2918:{
2912:}
2909:Y
2906:,
2900:{
2894:}
2891:X
2888:,
2882:{
2876:}
2870:,
2864:{
2858:Y
2855:*
2852:X
2849:,
2843:{
2837:}
2834:Y
2831:,
2825:{
2819:}
2816:X
2813:,
2807:{
2801:}
2795:,
2789:{
2783:Y
2780:+
2777:X
2774:,
2768:{
2762:}
2759:Y
2756:,
2750:{
2744:}
2741:X
2738:,
2732:{
2726:}
2720:,
2714:{
2656:}
2653:}
2650:{
2644:E
2635:D
2629:}
2626:{
2620:D
2611:A
2605:}
2602:{
2596:C
2587:A
2581:}
2578:{
2572:B
2563:A
2557:{
2527:}
2524:}
2518:{
2515:)
2512:x
2506:(
2497:{
2472:}
2469:}
2466:;
2463:x
2454:{
2451:)
2448:x
2442:(
2424:{
2365:—
2362:—
2359:—
2324:—
2315:—
1973:}
1970:}
1958:)
1952:n
1949:;
1946:0
1940:n
1928:{
1910:(
1898:(
1892:.
1889:j
1883:{
1880:)
1877:n
1871:(
1862:;
1853:.
1841:;
1832:.
1820:{
1800:}
1797:}
1764:(
1758:.
1755:j
1749:{
1731:(
1719:(
1713:.
1710:j
1704:}
1698:1
1695:-
1692:n
1689:(
1683:{
1677:}
1668:{
1665:)
1662:1
1656:n
1653:(
1647:{
1641:n
1638:(
1626:(
1614:(
1608:.
1605:j
1599:1
1596:+
1593:n
1590:(
1581:n
1578:(
1566:(
1554:(
1548:.
1545:j
1539:1
1536:(
1515:(
1503:(
1497:.
1494:j
1488:{
1476:;
1470:,
1464:,
1458:,
1449:.
1437:;
1419:.
1407:;
1398:.
1386:{
1366:}
1363:}
1357:;
1354:t
1348:{
1342:t
1339:(
1324:(
1312:(
1306:.
1303:j
1291:(
1285:.
1282:j
1267:(
1261:.
1258:j
1246:.
1240:=
1237:j
1231:{
1219:;
1210:.
1204:T
1189:;
1180:T
1171:.
1159:{
1153:T
1130:}
1127:}
1112:{
1094:(
1082:(
1076:.
1073:j
1067:{
1055:;
1046:.
1034:;
1025:.
1013:{
993:}
966:{
948:(
936:(
924:(
918:.
915:j
912:;
906:=
897:;
891:=
882:{
879:)
873:i
870:;
867:n
861:i
858:;
855:0
852:=
849:i
843:(
834:n
831:,
822:(
816:.
813:j
807:n
804:,
795:(
789:.
786:j
783:;
774:.
768:;
759:.
747:.
741:=
738:j
721:}
718:}
712:{
700:.
688:(
682:.
676:=
670:)
664:i
661:;
658:n
652:i
649:;
646:1
643:=
640:i
634:(
622:(
616:.
613:j
610:=
598:{
595:)
592:n
586:(
577:;
568:.
556:{
524:J
522:(
380:|
377:J
374:|
368:)
365:y
362:(
359:x
356:|
347:y
341:x
338:|
329:J
314:x
310:x
306:x
158:.
76:)
70:(
65:)
61:(
47:.
20:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.