HOME       UP       PREV       NEXT (Synopsys Behavioural Compiler)  

Join Calculus

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.


37: (C) 2012-17, DJ Greaves, University of Cambridge, Computer Laboratory.