Copenhagen Programming Language Seminar


Sharpie: A Language for Asynchronous Programming

Jakob Rehof
Microsoft Research, USA

Friday, March 7th, 11:00-12:00 (note unusual day and time)
DIKU, Universitetsparken 1, room N034


Sharpie is a concurrent language extension to C#, based on the .NET framework, which supports asynchronous programming, e.g., web services programming. The main features of the Sharpie language extension are: an asynchronous call-construct, futures, join-patterns, and a notion of behavioral contracts. Asynchronous calls return future values, which are used in join-patterns to synchronize calls. Behavioral contracts are the most innovative aspect of Sharpie. Contracts allow programmers to specify stateful high-level protocols on class interfaces. Contracts can prescribe legal invocation sequences on the methods of a class as well as the externally observable behavior of methods upon call. The Sharpie compiler contains a tool which checks conformance between a client of a class and its contract as well as conformance of the implementation of a class with its contract, using a combination of type inference and model checking.

The talk describes work in progress. We will focus on the notion of behavioral contracts and the techniques for verifying contract conformance, and we will illustrate with a simple case study from the web services domain.

Scientific host: Fritz Henglein. Administrative host: Camilla Jensen. All are welcome.
The Copenhagen Programming Language Seminar (COPLAS) is a collaboration between DIKU, IT-C and KVL.
To receive information about COPLAS talks by email, send a message to prog-lang-request@mail.it-c.dk with the word 'subscribe' as subject or in the body.

For more information about COPLAS, see http://www.coplas.org