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. |