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