Join Java: Difference between revisions

Content deleted Content added
m rm nested cat
Language characteristics: defluff, slightly. Still needs work
Line 7:
* Order class modifiers for determining the order that patterns are matched
 
Concurrency expression in most popular programming languages is stillimplemented quite low level and based onusing constructs such as semaphores and monitors, that have not changed in twenty years. Libraries that are emerging (such as the Java concurrency library JSR-166) show that programmers demand thatprovide higher-level concurrency semantics be available in mainstream languages. Communicating Sequential Processes (CSP), Calculus of Communicating Systems (CCS) and Pi have higher-level synchronization behaviours defined implicitly through the composition of events at the interfaces of concurrent processes. Join calculus, onin the other handcontrast, has explicit synchronization based on a localized conjunction of events defined as reduction rules. The<!--Can Joinsomeone semanticsplease appeartranslate tothe beprevious moretwo appropriatesentences tointo mainstreamEnglish? programmers;--> whoJoin wantsemantics try to provide explicit expressions of synchronization thatwithout do not breachbreaching the object-oriented idea of modularization., Join readily expresses theincluding dynamic creation and destruction of processes and channels which is sympathetic to dynamic languages like Java.
 
The Join Java language can express virtually all published concurrency patterns without explicit recourse to low-level monitor calls. In general, Join Java programs are more concise than their Java equivalents. The overhead introduced in Join Java by the higher-level expressions derived from the Join calculus is manageable. The synchronization expressions associated with monitors (wait and notify) which are normally located in the body of methods can be replaced by Join Java expressions (the Join methods) which form part of the method signature.