CLARITY

CLARITY is a new programming language to help write asynchronous event driven code in analyzable way. The language has 3 features that together provide analyzability:

1.  Nonblocking function calls that allow event-driven code to be written in a sequential style. If a blocking statement is encountered during the execution of such a call, the call returns and the remainder of the operation is automatically queued for later execution.

2.  Coords, a set of high-level coordination primitives, encapsulate common interactions between asynchronous components and make high-level coordination protocols explicit.

3.  Linearity annotations delegate coord protocol obligations to exactly one thread at each asynchronous function call, transforming a concurrent analysis problem into a sequential one.

Full-time Staff:
   Joseph Joy
   Sriram K. Rajamani
  

Interns:

   Prakash Chandrasekaran, Chennai Mathematical Institute
  Chris Conway, New York University

Papers:
         
Prakash Chandrasekaran, Christopher L. Conway, Joseph M. Joy and Sriram K. Rajamani,  Programming Asynchronous Layers with CLARITY,   6th joint meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering, September 2007.