Many software languages now include primitives for parallelism. (For instance, the CSharp language has the 'asynch' key word that can wrap up a method invoation via a delegate.)
The Join Calculus is an elegant concurrent programming language. It is globally asynchronous but supports local imperative programing (including a functional subset as usual).
In Join Calculus, a function has more than one signature - all need actual parameters available, generally provided from different sources, before an instance of the body is run.
The set of signatures is called a chord.
// //A simple join chord: // public class Buffer { public async Put(char c); public char Get(bool f) & Put(char c) { return (f) ? toupper(c):c; } }
New concurrency primitives - asynch dispatch - now builtin to C Sharp and F Sharp.
Has been compiled to hardware by a couple of research projects.
51: (C) 2012-18, DJ Greaves, University of Cambridge, Computer Laboratory. |